用于.NET 4.0的Svcutil.exe?

我正在尝试使用svcutil.exe为服务生成代理类,但是当我使用/reference选项来引用为.NET 4.0构build的程序集时,出现错误。

无法加载文件或程序集或其某个依赖项。 此程序集由比当前加载的运行时更新的运行时构build,无法加载。

所以看来我使用的是旧版本的svcutil.exe。 我正在使用"C:\Program Files\Microsoft SDKs\Windows\v7.0A这是我能find的最新版本。是否有更新的版本在我应该使用的地方?

我遇到过同样的问题。 如果您的项目设置为使用.NET 4.0 Framework,则必须select正确版本的SvcUtil.exe,否则将会出现错误:“无法加载…”

  • 如果您查看“Microsoft SDKs \ Windows \ v6.0A \ Bin”,您将看到该exe文件的版本是“3.0.4506.2152”。
  • “Microsoft SDKs \ Windows \ v7.0A \ Bin”中的SvcUtil.exe版本是完全相同的,所以它也抛出了一个循环。

但是, 有另一个版本的SvcUtil.exe位于“Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0工具”,它是版本“4.0.30319.1”,如果您使用它,一切都应该工作。

.Net 4.0 SDK的最新版本可在

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

驻留在v7.1 / bin中的 svcutil.exe具有版本3.0.4506.2152。

驻留在v7.1 / bin / NETFX 4.0 Tools中的 svcutil.exe版本为4.0.30319.1

根据这个.Net 4.0的链接,你应该使用C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0 \ Bin中的一个。

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

但似乎有点奇怪,如果在v7.0A目录是太旧了。

为什么不重build为.NET 3.5来生成类? 我怀疑你正在生成类的types不依赖于任何.NET 4.0的function。 cs文件不会在乎构buildDLL的版本,所以你可以在4.0项目中使用它们。

我有同样的问题。

微软表示,你只能使用.Net 4 DLL与最新版本的.Net( http://msdn.microsoft.com/en-us/library/aa347733.aspx )新版本的SvcUtil,但该版本似乎成为上面提到的那个。 它不会访问.Net 4 DLL作为参考。

回答我自己的问题。 svcutil的新版本可能会在6月中旬发布 的Windows SDK的v7.1 中提供 。

更新:util的最新版本不是v7.0按照:

Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0工具

安装Visual Studio 2012(VS 2012)后,SvcUtil.exe v8.0A现在可用。

“C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ SvcUtil.exe”

您真正想要的是将WSDL文件转换为服务客户端的完整定义:

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

其中service definition.wsdl显然是来自任何旧的soap端点的?wsdl响应。

小黄人和巨魔记得! 一切都是现在的asynchronous,所以寻找和利用由SVCUtil.exe v8.0生成的新的asynchronous支持