.net wcf .net-4.0 svcutil.exe

Svcutil.exe para.NET 4.0?



wcf .net-4.0 (7)

Intenté usar svcutil.exe para generar clases de proxy para un servicio, pero cuando uso la opción /reference para hacer referencia a un ensamblado creado para .NET 4.0, aparece un error.

No se pudo cargar el archivo o ensamblado [...] o una de sus dependencias. Este ensamblado está creado por un tiempo de ejecución más nuevo que el tiempo de ejecución cargado actualmente y no se puede cargar.

Parece que estoy usando una versión anterior de svcutil.exe. Estoy usando el que está en "C:/Program Files/Microsoft SDKs/Windows/v7.0A que fue el último que pude encontrar. ¿Hay alguna versión posterior en alguna parte que se supone que debo usar?


¿Por qué no reconstruir como .NET 3.5 para generar las clases? Sospecho que los tipos para los que estás generando clases no dependen de ninguna funcionalidad .NET 4.0. A los archivos cs no les importará para qué versión se creó el archivo DLL para que pueda usarlos en un proyecto 4.0 sin problemas.


Actualización: la versión más nueva de util no es v7.0 según:

Herramientas de Microsoft SDKs / Windows / v7.0A / Bin / NETFX 4.0

SvcUtil.exe v8.0A ahora está disponible después de instalar Visual Studio 2012 (VS 2012)

"C: / Archivos de programa (x86) / Microsoft SDKs / Windows / v8.0A / bin / NETFX 4.0 Tools / SvcUtil.exe"

Lo que realmente quieres es la definición completa para convertir un archivo WSDL en un cliente de servicio:

/n:*,MyCompany.Services.Client /out:IServiceInterface.cs ServiceDefinition.wsdl.xml

Donde el servicio definition.wsdl es obviamente la respuesta? Wsdl de cualquier viejo punto final de soap.

¡Minions y Trolls recuerdan! Todo ahora es Async, así que busca y aprovecha el nuevo soporte Async generado por v8.0 de SVCUtil.exe


De acuerdo con este enlace para .Net 4.0 debe usar uno en C: / Archivos de programa / Microsoft SDKs / Windows / v6.0 / Bin.

http://msdn.microsoft.com/en-us/library/aa347733.aspx

Aunque parece un poco extraño, si el que está en el directorio v7.0A es demasiado viejo.


Estoy teniendo el mismo problema.

Microsoft dice que solo puede usar .NET 4 DLL con el nuevo SvcUtil que viene con la última versión de .Net ( http://msdn.microsoft.com/en-us/library/aa347733.aspx ), pero esa versión parece sé el que estás mencionando arriba. No accederá .Net 4 DLL como referencias.


La última versión del SDK para .Net 4.0 está disponible en

http://msdn.microsoft.com/en-us/windows/bb980924.aspx

svcutil.exe que reside en v7.1 / bin tiene la versión 3.0.4506.2152.

svcutil.exe que reside en v7.1 / bin / NETFX 4.0 Tools tiene la versión 4.0.30319.1.



Tuve el mismo problema. Si su proyecto está configurado para usar .NET 4.0 Framework, debe elegir la versión correcta de SvcUtil.exe, o arrojará un error: "No se pudo cargar ..."

  • Si busca en "Microsoft SDKs / Windows / v6.0A / Bin", verá que la versión de ese exe es "3.0.4506.2152".
  • La versión de SvcUtil.exe en "Microsoft SDKs / Windows / v7.0A / Bin" es exactamente la misma, por lo que me lanzó a un bucle también.

Sin embargo, hay otra versión de SvcUtil.exe ubicada en "Microsoft SDKs / Windows / v7.0A / Bin / NETFX 4.0 Tools" que es la versión "4.0.30319.1", y si la usa, todo debería funcionar.