2016-08-31 11 views
15

私は、フレームワーク4.6.1に対してMicrosoft.SqlServer.Types(10.0.0.0)に依存するプロジェクトをテストする.netコアユニットテストプロジェクトを作成しようとしています。 .netコアの前に、バインディングリダイレクトを伴うapp.configファイルを追加します。私はこれを試しましたが、バインディングリダイレクトは、私がVisual Studioから実行したときに選択されていないようです。バインディングリダイレクトを修正するにはどうすればよいですか?.netコアユニットテストプロジェクトにリダイレクトするアセンブリバインディングを追加するにはどうしたらいいですか?

+1

バインディングリダイレクトがなくなっている:https://github.com/aspnet/Home/issues/407。私は彼らが_App.config_(もし、それがウェブアプリケーションであっても)でそれらを指定したならば、リリース候補の中である時点でまだ働いていると思います。しかし、私の推測では、それ以上のことはしていません。 – Joao

答えて

26

プロジェクトでMicrosoft.NET.Test.Sdk> = 15.3.0を参照すると、必要なMSBuildプロパティが自動的に有効になります。 hereを参照してください。


あなたの.csprojファイルに以下の設定を追加することができます。

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

は、そうでない場合はジョアンが言うように、あまりにも動作しますが、解決策のルートにapp.configに追加します。 Copy to Output Directoryの設定をCopy alwaysまたはCopy if Newerに設定してください。

+1

この回答は、VS 2017バージョン15.2または15.3で作成された完全な.NET Framework用のプロジェクトファイル(* .csproj)でも有効です。 .NET 4.6.1。 – Manfred

+0

.netコア2.0を参照しているユニットテストプロジェクトのapp.configは、現在テストホストを中断しています – Sentinel

7

NuGetパッケージを参照すると、Microsoft.NET.Test.Sdk> = 15.3.0(私はMicrosoft.NET.Test.Sdk 15.3.0-preview-20170601-03を使用しました)がこの問題を解決しました。そのパッケージは自動的に@ Mardoxxの答えに記載されているMSBuildプロパティを有効にします。

(私はhttps://github.com/NuGet/Home/issues/5335#issuecomment-306318810Martin Andreas Ullrichからこの情報を得ました。)

+1

ブリリアントはこれを知らなかった。ありがとうございました。 – Mardoxx

+3

これは受け入れられる回答である必要があります! –

+0

@D.RこれはExe出力タイプを持たないプロジェクトで私にとってはうまくいきません - 受け入れられた答えとして明示的に指定しなければなりません –

関連する問題