Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于.NET 4.0的Svcutil.exe?_.net_Wcf_.net 4.0_Svcutil.exe - Fatal编程技术网

用于.NET 4.0的Svcutil.exe?

用于.NET 4.0的Svcutil.exe?,.net,wcf,.net-4.0,svcutil.exe,.net,Wcf,.net 4.0,Svcutil.exe,我试图使用svcutil.exe为服务生成代理类,但当我使用/reference选项引用为.NET 4.0构建的程序集时,我遇到了一个错误 无法加载文件或程序集[…]或其依赖项之一。此程序集由比当前加载的运行时更新的运行时生成,因此无法加载 因此,我似乎使用的是svcutil.exe的旧版本。我使用的是“C:\Program Files\Microsoft SDK\Windows\v7.0A中的版本,这是我能找到的最新版本。是否有我应该使用的更高版本?根据.Net 4.0的此链接,您应该使用C:

我试图使用svcutil.exe为服务生成代理类,但当我使用
/reference
选项引用为.NET 4.0构建的程序集时,我遇到了一个错误

无法加载文件或程序集[…]或其依赖项之一。此程序集由比当前加载的运行时更新的运行时生成,因此无法加载


因此,我似乎使用的是svcutil.exe的旧版本。我使用的是
“C:\Program Files\Microsoft SDK\Windows\v7.0A中的版本,这是我能找到的最新版本。是否有我应该使用的更高版本?

根据.Net 4.0的此链接,您应该使用C:\Program Files\Microsoft SDK\Windows\v6.0\Bin中的版本


不过,如果v7.0A目录中的版本太旧,这似乎有点奇怪。

为什么不重建为.NET 3.5来生成类呢?我怀疑生成类的类型不依赖于任何.NET 4.0功能。cs文件不关心DLL是为哪个版本生成的,这样你就可以在4.0项目中很好地使用它们。

我有g同样的问题


Microsoft表示,您只能将.Net 4 DLL与最新版本的.Net()附带的新SvcUtil一起使用但该版本似乎就是您上面提到的版本。它根本无法访问.Net 4 DLL作为参考。

回答我自己的问题。
svcuti
的新版本可能会随之出现。

我也有同样的问题。如果您的项目设置为使用.Net 4.0框架,则必须选择正确的svcuti版本.exe,否则将抛出错误:“无法加载…”

  • 如果查看“Microsoft SDK\Windows\v6.0A\Bin”,您将看到该exe的版本为“3.0.4506.2152”

  • “Microsoft SDK\Windows\v7.0A\Bin”中的SvcUtil.exe的版本完全相同,因此它也让我陷入了一个循环

但是,在“Microsoft SDK\Windows\v7.0A\Bin\NETFX 4.0 Tools”中还有另一个版本的svcuti.exe,即版本“4.0.30319.1”,如果您使用它,一切都应该正常。

最新版本的.Net 4.0 SDK可在

驻留在v7.1/bin中的svcutil.exe的版本为3.0.4506.2152


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

更新:最新版本的util不是v7.0,根据:


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

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

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

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

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

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


仆从和巨魔记住了!现在一切都是异步的,所以请寻找并利用Svcuti.exe的v8.0生成的新异步支持,我检查了它们,它们都是相同的版本,3.0.4506.2152,所以我在尝试该版本时会遇到相同的错误。或许可以尝试以下方法:我想将Svcuti作为构建事件运行,这意味着始终有我的引用nced汇编编译为.Net 3.5。它现在可以工作,因为其中还没有4.0功能,但我希望以后能够添加它。我仍然对查找问题的实际原因感兴趣。是否没有支持.Net 4的svcutil版本?是否有?我将此标记为可接受的答案,因为它是接受的现在可以解决问题。不过仍然对更多答案感兴趣。Microsoft SDK\Windows\v7.0A\Bin\NETFX 4.0 Tools是正确的答案。谢谢!谢谢你,mee,我也非常感谢…等等,结果是SDK的默认安装没有选择.NET Tools选项。选中该选项后,将安装svcutil.exe文件。