2008-10-01 18 views
17

Tengo un proyecto .NET que tiene una referencia Web a un servicio. Me gustaría actualizar esa referencia web como parte de cada compilación. ¿Es eso posible?¿Cómo actualizo automáticamente una referencia web en tiempo de compilación?

+2

El servicio web y los clientes se escriben y se utilizan en casa. No quiero tener que recordar actualizar manualmente la referencia web en cada proyecto de cliente en cualquier momento que cambie wsdl. – HBFan

Respuesta

17

Puede utilizar la escritura de MSBuild con una tarea que llama 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 es solo para servicios ASMX. La herramienta de línea de comandos para WCF no realiza el mismo trabajo que "Servicio de actualización de referencia" de Visual Studio –

1

Además, cuando se va a implementar sus servicios web en la producción de asegurarse de que se establecen como dinámico y no estático.

0

Puede utilizar svcutil herramienta (http://msdn.microsoft.com/en-us/library/aa347733.aspx) para generar la referencia web para usted. La herramienta generará las clases apropiadas de proxy del cliente y la configuración adecuada (e incluso puede fusionarla en la configuración de la aplicación). Tenga en cuenta que la herramienta requiere .Net 3.0 y generará proxies y configuraciones de cliente estilo WCF.

2

Puede hacerlo utilizando los métodos proporcionados por los otros que responden, pero hay que saber que haciendo esto podría causar que su acumulación falle. Si se cambió el WSDL, el código generado también cambiará y es posible que su código ya no se pueda compilar.

+11

Presumiblemente, eso es deseable ... –

Cuestiones relacionadas