我正在尝试使用 FSUnit.xUnit 编写一个单元测试项目。
在我对此过程的整个开发过程中,我一直受到测试失败并显示此消息的困扰(并不总是引用相同的版本):
Could not load file or assembly 'FSharp.Core, Version=3.259.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
添加绑定重定向似乎没有效果。我最近的一个是:
<configuration>
<runtime>
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.4.0.0" newVersion="4.4.0.0" />
</dependentAssembly>
</runtime>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
</configuration>
到目前为止唯一有效的是降级 FSharp.Core NuGet 包,但在这个最新的版本中,即使这也失败了。
我在这个问题上浪费了很多时间。任何帮助将不胜感激。
更新
据我所知,这是由于 Json.NET 中的一个错误。测试正在运行,但是在我序列化和反序列化可区分联合时,程序集中会引发错误。我在 Json.NET 中提交了一个问题。
进一步更新
我正在从针对 F# 版本 4.4.0.0 的测试项目中调用 Json.NET 序列化程序,并且我尝试序列化的对象是在具有 Profile259(portable-net45+netcore45+wpa81+wp8)的便携式程序集中定义的。可移植程序集包含相同的绑定重定向。