在.net 4.5项目中,我正在尝试创建一个重用在.net 4.0中编译的类型的WCF服务引用,但是我无法让Visual Studio在服务代理中重用4.0类型。
我可以很好地实例化类型,但服务引用生成器拒绝接收它们。如果我将相同的服务添加到.net 4.0项目中,则会成功重用这些类型。
有人知道如何让.net 4.5生成的服务代理重用.net 4.0类型吗?
答案 0 :(得分: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?
答案 1 :(得分:0)
您是否尝试过使用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
的 SvcUtil
将指定的程序集添加到用于解析类型引用的程序集集中。如果要导出或验证使用在配置中注册的第三方扩展(Behaviors,Bindings和BindingElements)的服务,请使用此选项查找不在GAC中的扩展程序集。
有关详细信息,请参阅msdn SvcUtil
确保引用的dll位于引用它的物理位置,对我有用。 希望它会对你有所帮助。