2008-10-01 28 views
17

我有一個.net項目,它具有對服務的Web引用。我想更新該Web引用作爲每個構建的一部分。那可能嗎?如何在構建時自動更新Web引用?

+2

Web服務和客戶端在內部編寫和使用。我不想記得手動更新每個客戶端項目上的Web引用,只要wsdl發生變化。 – HBFan 2008-10-01 21:00:08

回答

17

可以使用的MSBuild腳本調用wsdl.exe

<Target Name="UpdateWebReference"> 
    <Message Text="Updating Web Reference..."/> 
    <Exec Command="wsdl.exe /o &quot;$(OutDir)&quot; /n &quot;$(WebServiceNamespace)&quot; &quot$(PathToWebServiceURL)&quot;"/> 
    </Target> 
+2

WSDL僅適用於ASMX服務。 WCF的命令行工具不會執行與Visual Studio的「更新服務參考」 – 2013-07-24 13:26:09

1

此外,當您在生產環境中部署Web服務時,請確保它們設置爲動態而非靜態。

0

您可以使用svcutil(http://msdn.microsoft.com/en-us/library/aa347733.aspx)工具爲您生成Web引用。該工具將生成適當的客戶端代理類和適當的配置(甚至可以將它合併到您的應用程序配置中)。請記住,該工具需要.Net 3.0,並將生成WCF風格的客戶端代理和配置。

2

您可以使用由其他應答者提​​供的方法是做一個任務,但是你要知道,這樣做可能會導致您的構建失敗。如果WSDL發生了變化,那麼生成的代碼也會發生變化,您的代碼可能不再編譯。

+11

相同的工作推測,這是可取的... – 2011-07-15 19:09:13

相關問題