28

I'm trying to create a .net core unit test project against framework 4.6.1 which tests an project dependent on Microsoft.SqlServer.Types (10.0.0.0). Prior to .net core I'd add an app.config file with the binding redirect. I've tried this but the binding redirect does not seem to be picked up when I run from visual studio. What can I do to fix the binding redirect?

JeffreyABecker
  • 2,724
  • 1
  • 25
  • 36
  • 2
    Binding redirects are gone: https://github.com/aspnet/Home/issues/407. I think they still worked at some point, during release candidates, if you specified them on an _App.config_ (yes, even if it's a web app). But my guess is that not even that _hack_ is working anymore. – Joao Aug 31 '16 at 17:39

3 Answers3

41

If you reference Microsoft.NET.Test.Sdk >= 15.3.0 in your project it automatically turns on the required MSBuild properties, as Fabian says below. See here.


You can add the following settings to your .csproj file:

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

Otherwise adding them to an app.config in the root of the solution, as Joao says, works too. Make sure you set its Copy to Output Directory setting to Copy always or Copy if Newer.

Mardoxx
  • 4,372
  • 7
  • 41
  • 67
  • 1
    This answer also works for project files (*.csproj) that were created with VS 2017 version 15.2 or 15.3 and which are for the full .NET Framework, e.g. .NET 4.6.1. – Manfred Aug 21 '17 at 20:53
  • app.config in a unit test project referencing .net core 2.0 currently breaks the test host – Sentinel Jan 25 '18 at 12:38
10

Referencing the NuGet package Microsoft.NET.Test.Sdk >= 15.3.0 (I used Microsoft.NET.Test.Sdk 15.3.0-preview-20170601-03) solved this problem for me. That package automatically turns on the MSBuild properties mentioned in @Mardoxx's answer.

(I got this info from Martin Andreas Ullrich at https://github.com/NuGet/Home/issues/5335#issuecomment-306318810.)

Fabian Schmied
  • 3,885
  • 3
  • 30
  • 49
1

In my case none of the solutions mentioned above helped (even if the binding redirects are generated automatically or added manually, looks like these hacks are really not working anymore as @Joao suggested).

So I added the desired version of the package to my project, even if it is not used directly and this resolved the issue. I don't like this approach, but this was the only way working for me.

Hopefully this method can help others as well.

dillinzser
  • 11
  • 1