У меня есть проект .net, который имеет веб-ссылку на службу. Я хотел бы обновить эту веб-ссылку как часть каждой сборки. Возможно ли это?
Как автоматически обновлять веб-ссылку во время сборки?
Ответ 1
Вы можете использовать MSBuild script с задачей, которая вызывает wsdl.exe
<Target Name="UpdateWebReference">
<Message Text="Updating Web Reference..."/>
<Exec Command="wsdl.exe /o "$(OutDir)" /n "$(WebServiceNamespace)" "$(PathToWebServiceURL)""/>
</Target>
Ответ 2
Вы можете сделать это, используя методы, предоставленные другими ответчиками, но вы должны знать, что это может привести к сбою сборки. Если WSDL был изменен, сгенерированный код также изменится, и ваш код больше не сможет компилироваться.
Ответ 3
Кроме того, при развертывании ваших веб-сервисов на производстве убедитесь, что они установлены как динамические, а не статические.
Ответ 4
Вы можете использовать инструмент svcutil (http://msdn.microsoft.com/en-us/library/aa347733.aspx) для создания веб-ссылки для вас. Инструмент будет генерировать надлежащие классы прокси-сервера клиента и правильную конфигурацию (и это может даже объединить его в конфигурацию вашего приложения). Имейте в виду, что для этого инструмента требуется .Net 3.0 и создаст прокси и конфигурацию клиента WCF.