4

我将 Visual Studio 从 VS2017 升级到 VS2019。我打开了一个包含 C# 和 F# 的解决方案。AC# 单元测试项目引用 F# .dll 项目。

该解决方案编译良好,但在运行时,我收到以下消息

System.IO.FileLoadException:'无法加载文件或程序集'FSharp.Core,版本 = 4.6.2.0,文化 = 中性,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)'

内部的例外是

无法加载文件或程序集 'FSharp.Core, Version=4.6.0.0, Culture=neutral, 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" />

是否缺少我没有看到的参考资料?

谢谢

4

1 回答 1

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>

它奏效了

于 2019-05-27T20:19:01.730 回答