Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net XUnit和F#core 4.3.1在类库中加载错误_.net_Nuget_Xunit_Assembly Binding Redirect - Fatal编程技术网

.net XUnit和F#core 4.3.1在类库中加载错误

.net XUnit和F#core 4.3.1在类库中加载错误,.net,nuget,xunit,assembly-binding-redirect,.net,Nuget,Xunit,Assembly Binding Redirect,我对(可能)XUnit和许多Nuget软件包有一个非常令人困惑的问题。我的解决方案包括一个与这个问题无关的C项目和一个F测试项目 tests项目是一个非常简单的类库项目,它有一个.fs文件,其中包含所有测试和几个NuGet软件包,其中三个(IMO)很重要:fsUnitxUnit在1.4.1.0版中,XUnit在2.1.0版中,以及FSharp.Core在4.0.0.1版中 问题是,当以下两个条件均为真时,无法加载文件或程序集FSharp.Core,Version=4.3.1.0上的测试总是失败:

我对(可能)XUnit和许多Nuget软件包有一个非常令人困惑的问题。我的解决方案包括一个与这个问题无关的C项目和一个F测试项目

tests项目是一个非常简单的类库项目,它有一个.fs文件,其中包含所有测试和几个NuGet软件包,其中三个(IMO)很重要:
fsUnitxUnit
在1.4.1.0版中,
XUnit
在2.1.0版中,以及
FSharp.Core
在4.0.0.1版中

问题是,当以下两个条件均为真时,
无法加载文件或程序集FSharp.Core,Version=4.3.1.0
上的测试总是失败:引用的NuGet
FSharp.Core
版本为4.0.0。[10],项目类型为类库

当NuGet
FSharp.Core
手动降级到3.1.2.5版,或者projet的类型更改为Console应用程序时,不会抛出异常,所有测试都会按其应该的方式通过

似乎这还不够奇怪,它只在Windows上运行。在Linux(或至少travis cl(如图所示))上,每种配置中的一切都运行良好

Linked正在测试回购协议。最后三次提交显示了哪些配置工作,哪些不工作。最后一个“does Alway work”配置没有适当的travis配置文件,但也可以在Windows和travis上运行(测试通过)


免责声明:我是NuGet软件包的新手,因此可能缺少一些非常基本的内容。

问题是,当您的项目使用不同的版本时,FsUnit.xUnit引用了FSharp.Core 4.3.1.0

您应该能够通过使用解决方案来解决此问题


...

我相信您应该能够将其放入测试项目的app.config中,xunit应该能够找到并使用生成的.dll.config文件。我会先试试。否则,您可以将绑定重定向放入xunit.console.exe.config中,以便在运行xunit.console.exe时使用它。

好的,我明白了,但为什么只有当项目的类型为类库时才会出现问题?不确定。您是否在Visual Studio 2013或更高版本中构建.exe并以.NET 4.5.1为目标?如果桌面/控制台应用程序是根据.NET4.5.1Yep编译的,VisualStudio将自动为其提供支持,很可能就是这样。谢谢!:)
<?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="0.0.0.0-4.3.0.0" newVersion="4.3.1.0" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
</configuration>