2010-09-02 47 views
7

我正在嘗試使用svcutil.exe從一組.wsdl文件中僅生成服務契約(接口)。當我這樣做時(從一個http託管的wsdl),它將獲取包含的模式併爲它們生成所有代碼。爲什麼svcutil.exe的/ reference選項不起作用?

太好了。

我會真的喜歡做的事,然而,就是用一組使用xsd.exe工具(這種情況的原因並不重要,我只想說,我從架構文件已經生成的類需要在一個程序集中包含類型,並在另一個程序集中包含服務契約)。我成功地生成了包含所有類型的程序集。

當我嘗試讓svcutil.exe使用該程序集中的類型時,會發生此問題。我的命令行看起來是這樣的:

svcutil /target:code /noconfig /reference:my_types.dll http://path/to/wsdl 

這工作正常,但生成的代碼包含在my_types.dll文件中的所有類型的副本。這是我從svcutil.exe的文檔中瞭解到的,這是/ reference:參數要解決的確切問題。但在我的情況下,它不起作用。

爲什麼?

回答

5
+0

這似乎是完全的原因。我希望他詳細瞭解爲什麼存在這個限制,但是謝謝你的答案! – Mark 2010-10-25 14:52:44

+0

您是否嘗試過針對您的WSDL手動運行WSDL.exe來生成代理類。刪除它生成的類然後添加對你的類的引用。 – Andrew 2010-10-25 16:37:23

1

我有這個問題。我用/ r引用的二進制文件中的某些內容仍然在生成的代碼中再次生成。從其中一個服務函數返回的對象之一是返回數據表或其他可怕的東西。我在System.Data的整個路徑中添加了一個/ r,並修復了它。

/R: 「C:\ Program Files文件(x86)的\參考大會\微軟\ Framework.NETFramework \ v4.5.2 \ System.Data.dll中」