如何为特定版本的框架生成代理类

时间:2015-01-08 14:06:35

标签: c# web-services visual-studio visual-studio-2012 proxy

我正在生成一个代理类的webservice以在我的项目中使用(离线工作)。

按照本网站上的说明操作:http://msdn.microsoft.com/en-us/library/aa347733%28v=vs.110%29.aspx

对于SVC来说是这样的: C:\ Temp \ svc> svcutil" http://mywebservice.ws/wsAddress.asmx?WSDL"

像webservice这样: C:\ Temp \ ws> wsdl" http://mywebservice.ws/wsAddress.asmx?WSDL"

两者都是为4.0版生成的。

因此它为.NET Framework 4.0版生成。在我的目标项目上,我需要将它用于Framework 3.5版。

当我将代理类复制到项目并尝试运行它时会出现编译错误,因为某些名称空间不在v3.5中,我应该使用V3.5。

e.g。 System.Threading.Tasks.Task - >不在V3.5

那么如何为v3.5生成代理类?

我正在使用VS 2013.

1 个答案:

答案 0 :(得分:2)

MSDN上的ServiceModel Metadata Utility Tool (Svcutil.exe)页面声明:

  

该工具不支持多重定位。如果要从svcutil.exe生成.NET 4工件,则必须使用.NET 4 SDK中的svcutil.exe。要生成.NET 3.5工件,请使用.NET 3.5 SDK中的可执行文件。

所以您只需要在调用之前设置环境以使用正确的SDK:

  

C:\ Temp \ svc> svcutil“http://mywebservice.ws/wsAddress.asmx?WSDL

如果您没有,download the .NET 3.5 SDK