尝试运行测试时出现以下错误:
{System.IO.FileLoadException:无法加载文件或程序集 ' FSharp.Core,Version = 3.3.1.0,Culture = neutral, 公钥= b03f5f7f11d50a3a'或其中一个依赖项。该 定位程序集的清单定义与程序集不匹配 参考。 (来自HRESULT的异常:0x80131040)文件名: ' FSharp.Core,Version = 3.3.1.0,Culture = neutral, 公钥= b03f5f7f11d50a3a'在 Register.RegisterResponse .__ DebugDisplay()
Tests.dll
FSharp.Core:3.1.2.5
目标F#运行时:4.3.1.0
目标框架:4.6
输出类型:类库
ManageAccount.dll
FSharp.Core:3.1.2.5
目标F#运行时:3.3.1.0
目标框架:.NET可移植子集(.Net Framework 4.5,ASP.Net Core 1.0,Windows 8)
输出类型:类库
然后我将以下应用配置添加到我的测试项目中:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a"
culture="neutral"/>
<bindingRedirect oldVersion="3.1.2.5" newVersion="3.3.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
如果我确实需要app配置,我的bindingRedirect应该设置为什么值?
答案 0 :(得分:5)
试试<bindingRedirect oldVersion="0.0.0.0-999.999.999.999" newVersion="3.3.1.0" />
。大多数F#项目似乎都在为FSharp.Core做些什么。 (或newVersion="4.3.1.0"
,如果升级到较新的FSharp.Core,甚至是newVersion="4.4.0.0"
。
答案 1 :(得分:1)
您应该在4.3.1.0
中使用最新版本(在这种情况下为bindingRedirect/newVersion
),否则,您可能会从Tests.dll
程序集中依赖于较新版本的代码中获得错误。< / p>
或者,您可以更新其中一个程序集中的引用(降级Tests.dll
或升级ManageAccount.dll
),以便它们都使用相同的版本。