如何将程序集绑定重定向添加到 .net 核心单元测试项目?
How can I add an assembly binding redirect to a .net core unit test project?
我正在尝试针对框架 4.6.1 创建一个 .net 核心单元测试项目,该项目测试依赖于 Microsoft.SqlServer.Types (10.0.0.0) 的项目。在 .net 核心之前,我会添加一个带有绑定重定向的 app.config 文件。我已经试过了,但是当我从 visual studio 运行 时,绑定重定向似乎没有被拾取。我该怎么做才能修复绑定重定向?
如果您在项目中引用 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 always
或 Copy if Newer
.
引用 NuGet 包 Microsoft.NET.Test.Sdk
>= 15.3.0(我使用 Microsoft.NET.Test.Sdk 15.3.0-preview-20170601-03
)为我解决了这个问题。该包自动打开@Mardoxx 的回答中提到的 MSBuild 属性。
(我从 Martin Andreas Ullrich at https://github.com/NuGet/Home/issues/5335#issuecomment-306318810 那里得到了这个信息。)
就我而言,上述 none 解决方案有所帮助(即使绑定重定向是自动生成或手动添加的,看起来这些 hack 确实不再像@Joao 所建议的那样起作用了)。
所以我将所需版本的包添加到我的项目中,即使它不是直接使用的,这也解决了问题。我不喜欢这种方法,但这是对我有用的唯一方法。
希望这个方法也能帮助到其他人。
我正在尝试针对框架 4.6.1 创建一个 .net 核心单元测试项目,该项目测试依赖于 Microsoft.SqlServer.Types (10.0.0.0) 的项目。在 .net 核心之前,我会添加一个带有绑定重定向的 app.config 文件。我已经试过了,但是当我从 visual studio 运行 时,绑定重定向似乎没有被拾取。我该怎么做才能修复绑定重定向?
如果您在项目中引用 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 always
或 Copy if Newer
.
引用 NuGet 包 Microsoft.NET.Test.Sdk
>= 15.3.0(我使用 Microsoft.NET.Test.Sdk 15.3.0-preview-20170601-03
)为我解决了这个问题。该包自动打开@Mardoxx 的回答中提到的 MSBuild 属性。
(我从 Martin Andreas Ullrich at https://github.com/NuGet/Home/issues/5335#issuecomment-306318810 那里得到了这个信息。)
就我而言,上述 none 解决方案有所帮助(即使绑定重定向是自动生成或手动添加的,看起来这些 hack 确实不再像@Joao 所建议的那样起作用了)。
所以我将所需版本的包添加到我的项目中,即使它不是直接使用的,这也解决了问题。我不喜欢这种方法,但这是对我有用的唯一方法。
希望这个方法也能帮助到其他人。