如何将程序集绑定重定向添加到.net核心单元测试项目?

时间:2016-08-31 14:18:10

标签: .net-core xunit.net

我正在尝试针对框架4.6.1创建一个.net核心单元测试项目,该项目测试依赖于Microsoft.SqlServer.Types(10.0.0.0)的项目。在.net核心之前,我添加了一个带有绑定重定向的app.config文件。我试过这个但是当我从visual studio运行时,绑定重定向似乎没有被提取。我该怎么做才能修复绑定重定向?

3 个答案:

答案 0 :(得分:31)

如果您在项目中引用Microsoft.NET.Test.Sdk> = 15.3.0,它会自动打开所需的MSBuild属性,如Fabian所述。请参阅here

您可以将以下设置添加到.csproj文件中:

<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

否则,如Joao所说,将其添加到解决方案根目录中的app.config也可以。确保将其Copy to Output Directory设置为Copy alwaysCopy if Newer

答案 1 :(得分:8)

引用NuGet包Microsoft.NET.Test.Sdk&gt; = 15.3.0(我使用Microsoft.NET.Test.Sdk 15.3.0-preview-20170601-03)为我解决了这个问题。该软件包会自动打开@ Mardoxx答案中提到的MSBuild属性。

(我在Martin Andreas Ullrichhttps://github.com/NuGet/Home/issues/5335#issuecomment-306318810收到了此信息。)

答案 2 :(得分:0)

就我而言,上述解决方案都无济于事(即使绑定重定向是自动生成的还是手动添加的,看起来这些黑客确实不再起作用,如@Joao所建议的那样。)

因此,即使未直接使用该软件包,我也将其添加到项目中,从而解决了该问题。我不喜欢这种方法,但这是为我工作的唯一方法。

希望这种方法也可以帮助其他人。