我有一个针对F#运行时4.4.1的单元测试项目。它具有一个带有bindingRedirect部分的app.config:

  <dependentAssembly>
    <Paket>True</Paket>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.1.0" />
  </dependentAssembly>

但是,当我运行测试时,出现运行时错误:

无法加载文件或程序集'FSharp.Core,版本= 4.3.0.0,
文化=中性,PublicKeyToken = b03f5f7f11d50a3a'或其中之一
依赖性。该系统找不到指定的文件。

我不知道为什么由于bindingRedirect指定了不同的版本而试图加载FSharp.Core 4.3.0.0。

最佳答案

显然,这是XUnit配置的问题。 app.config中的以下部分更改了AppDomain配置:

  <appSettings>
    <add key="xunit.appDomain" value="required" />
  </appSettings>

然后,测试跑步者抱怨缺少xunit.execution.desktop.dll。一旦将文件放置在执行目录中,XUnit运行器就会通过bindingRedirect设置来授予app.config荣誉。

08-06 01:25