言語
この記事では、MSB3247エラー コードについて説明します。
メッセージ テキスト
MSB3247: Found conflicts between different versions of the same dependent assembly. In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the 'runtime' node in the application configuration file:
注釈
このエラーは、.NET Framework プロジェクトをビルドするときに発生します。
ResolveAssemblyReference タスクによって生成されます。
ResolveAssemblyReference実行できるモードは 2 つあります。バインド リダイレクトを生成するように構成することも、生成しないように構成することもできます。 設定されていない場合、このエラーは、依存アセンブリの 2 つの異なるアセンブリ バージョン間で競合が発生したときに発生します。
解決策
次の解決策を検討してください。
解決策 1: バインド リダイレクトを自動的に生成するように MSBuild を構成する
リダイレクトを自動的に生成するようにAutoGenerateBindingRedirectsを構成するプロパティ ResolveAssemblyReferenceを確認します。 このプロパティは Visual Studio で設定できます。
[プロジェクトのプロパティ] (Alt+Enter) を開き、[アプリケーション] タブを開き、[バインド リダイレクトの自動生成] チェック ボックスをオンにします。
または、プロジェクト ファイルを編集してバインド リダイレクトを自動的に生成するには、プロジェクト ファイル内のいずれかの PropertyGroup 要素に次のプロパティを追加します。
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
自動バインディング リダイレクトの有効化と無効化を参照してください。
解決策 2: app.config または web.config ファイルにバインド リダイレクトを追加する
バインド リダイレクトは、警告出力テキストで推奨されているように、構成ファイル (app.config や web.config など) に手動で追加できます。 このオプションは、MSBuild がバインド リダイレクトを自動的に生成することを許可しない場合に適しています。これは、あいまいさを減らすために構成ファイルに明示的に一覧表示する必要があるためです。
バインド リダイレクトを自動的に生成しない場合は、バインド リダイレクトを明示的に追加するように app.config ファイル (または web.config) を更新します。 警告メッセージには、runtime ファイルのapp.config要素にコピーして貼り付けることができるバインド リダイレクトの XML が表示されます。
または、プロパティ GenerateBindingRedirectsOutputType が true の場合、MSBuild はバインド リダイレクトを出力ファイルに書き込みます。 実行可能な出力ファイルの .NET Framework ビルドでは自動的に true に設定されますが、 .dll 出力では手動で true に設定することもできます。 MSBuild によってバインド リダイレクトが生成されると、出力ディレクトリ内の .config ファイルに追加されます。このファイルには、 app.config または web.config ファイル内にあるバインド リダイレクトも含まれます。 バインド リダイレクトをそこからコピーし、明示的に表示する場合、または MSBuild で自動的に生成しない場合は、app.config要素の下のruntime ファイルに XML を貼り付けることができます。
関連コンテンツ
対象
MSBuild のすべてのバージョン