【问题标题】:how to generate a proxy class to a specific version of framework如何为特定版本的框架生成代理类
【发布时间】:2015-01-29 23:55:50
【问题描述】:

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

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

像这样的 SVC: C:\Temp\svc>svcutil "http://mywebservice.ws/wsAddress.asmx?WSDL"

像这样的网络服务: C:\Temp\ws>wsdl "http://mywebservice.ws/wsAddress.asmx?WSDL"

两者都是为 4.0 版生成的。

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

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

例如System.Threading.Tasks.Task -> 不在 V3.5 中

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

我正在使用 VS 2013。

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】:

    • 您也有可能在您的机器上的以下位置找到 SvcUtil 工具 3.0 版:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 2013-04-29
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多