在 .net 4.5 项目中,我试图创建一个 WCF 服务引用,该引用重用在 .net 4.0 中编译的类型,但我无法让 Visual Studio 重用服务代理中的 4.0 类型。
我可以很好地实例化类型,但服务引用生成器拒绝接收它们。如果我将相同的服务添加到 .net 4.0 项目,则类型会成功重用。
有人知道如何获得 .net 4.5 生成的服务代理来重用 .net 4.0 类型吗?
我想知道它是否与useLegacyV2RuntimeActivationPolicy
. 我不确定这是否会帮助您解决 WCF 中的问题,但请尝试将其粘贴在您的 .config 文件中
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
在这里详细一点:What does 'useLegacyV2RuntimeActivationPolicy' do in the .NET 4 config?
您是否尝试过带有标签SvcUtil
的命令行/r
SvcUtil http://localhost/Service.svc /r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll" /r:"..\Reference Assemblies\Service.DataContracts.dll"
/r
withSvcUtil
将指定的程序集添加到用于解析类型引用的程序集集中。如果您要导出或验证使用在配置中注册的第 3 方扩展(行为、绑定和绑定元素)的服务,请使用此选项来查找不在 GAC 中的扩展程序集。
有关详细信息,请参阅msdn SvcUtil
确保引用的 dll 位于引用它的物理位置,对我有用。希望它会帮助你。