如何使用svcutil从.NET 4.5中的程序集生成.NET 4.0的WCF代理?

时间:2014-10-23 10:36:59

标签: .net wcf svcutil.exe

我使用duplex net.tcp连接编写了运行WCF服务主机和客户端应用程序的服务器端应用程序(系统服务),两者都在.net 4.5中。一切正常(使用svcutil从服务器程序集在客户端生成代理)。

现在我收到将客户端应用程序转换为.NET 4.0的请求,以便能够在Windows Embedded(基于XP)上运行。

问题是,我没有能够使用svcutil for .NET 4.5生成没有异步方法的客户端代理,也无法使用svcutil为.NET 4.0生成代理,因为服务器程序集是用.NET 4.5。

这种情况有解决方案吗?

1 个答案:

答案 0 :(得分:3)

我找到了解决方案。因为生成客户端代理是两步过程(生成元数据并从元数据生成客户端),我将这些步骤拆分并用于每个步骤不同的svcutil:

  • 使用.NET 4.5中的svcutil生成元数据
  • 使用.NET 4.0中的svcutil从元数据生成代理

-

"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\svcutil" "..\ServerApplication\ServerApplication\bin\Debug\ServerApplication.exe"
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\svcutil" *.wsdl *.xsd /language:C# /out:ClientApplication\ServerApplicationClient.cs /noConfig