我将Visual Studio从VS2017升级到了VS2019。我打开了一个同时包含C#和F#的解决方案。一个C#单元测试项目引用了一个F#.dll项目。
该解决方案可以正常编译,但是在运行时,我收到以下消息
System.IO.FileLoadException:'无法加载文件或程序集 'FSharp.Core,版本= 4.6.2.0,文化=中性, PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。的 找到的程序集的清单定义与程序集不匹配 参考。 (来自HRESULT的异常:0x80131040)'
内部的例外是
无法加载文件或程序集'FSharp.Core,版本= 4.6.0.0, 文化=中性,PublicKeyToken = b03f5f7f11d50a3a'或其中之一 依赖性。找到的程序集的清单定义不 匹配程序集参考。 (来自HRESULT的异常:0x80131040)
我在单元测试app.config中拥有这个:
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.6.2.0" newVersion="4.6.2.0" />
</dependentAssembly>
,单元测试项目在packages.config中具有此功能
<package id="FSharp.Core" version="4.6.2" targetFramework="net461" />
我没有看到缺少的参考文献吗?
谢谢
答案 0 :(得分:4)
本特·特兰伯格是对的
在测试项目中,我将绑定重定向更改为
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.6.2.0" newVersion="4.6.0.0" />
</dependentAssembly>
成功了