Nuget使用時に「warning MSB3247 Found conflicts between different versions of the same dependent assembly.」が発生
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-戻る
--[[NuGet]]
--[[MSBuild]]
* 目次 [#h43555c0]
#contents
*概要 [#gc03ed29]
-NuGetは非常に便利だが、この問題がよく起きるようになった。
-バインディング リダイレクトによって対応可能。
**問題の内容 [#l8d7ea1b]
以下のようなエラーが出た場合の対処。
-warning MSB3247: 同じ依存アセンブリの異なるバージョン間...
-warning MSB3247: Found conflicts between different versi...
**問題の対策 [#p8fe593d]
[[ビルド出力ログ>#k4519d36]]を確認して、バインディング リ...
*詳細 [#w8916156]
バインディング リダイレクトが設定されていない場合、~
以下のバージョン不一致のケースでも、競合が報告される。
-下位モジュールで、下位バージョンの依存関係モジュールを使用
-上位モジュールで、上位バージョンの依存関係モジュールを使用
**調査方法 [#b7a12c2f]
***ビルド出力の詳細化 [#k4519d36]
-ビルド出力のレベルを上げる。
--Visual Studioの場合
---[ツール] → [オプション] → [プロジェクトおよびソリュー...
---[MSBuild プロジェクト ビルドの出力の詳細(V)]を"詳細"に...
-MSBuildの場合
-- -verbosity(-v)スイッチに
-- levelオプションとして「d[etailed]」を指定する。
---q[uiet]
---m[inimal]
---n[ormal]
---d[etailed]
---diag[nostic]
-以下、"詳細"のビルド出力。
yyyy/MM/dd HH:mm:ss にビルドを開始しました。
ノード 1 上のプロジェクト "XXXX.sln" (既定のターゲット)。
ValidateSolutionConfiguration:
ソリューション構成 "Debug|Any CPU" をビルドしています。
プロジェクト "XXXX.sln" (1) は、ノード 1 上に "XXXX.cspr...
ResolveAssemblyReferences:
競合を解決して警告を消去するために、app.config でアセ...
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft....
GenerateTargetFrameworkMonikerAttribute:
すべての出力ファイルが入力ファイルに対して最新なので、タ...
CoreCompile:
すべての出力ファイルが入力ファイルに対して最新なので、タ...
_CopyAppConfigFile:
すべての出力ファイルが入力ファイルに対して最新なので、タ...
CopyFilesToOutputDirectory:
XXXX -> XXXX.dll
プロジェクト "XXXX.csproj" (既定のターゲット) のビルドが...
プロジェクト "XXXX.sln" (既定のターゲット) のビルドが完...
ビルドに成功しました。
"XXXX.sln" (既定のターゲット) (1) -> "XXXX.csproj" (既定...
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsof...
1 個の警告
0 エラー
経過時間 00:00:00.nn
※ 伏せているけど、上記は、バージョン番号からしてMySQL。~
このように、どの依存アセンブリでバージョン間の競合が起き...
***ツール(AsmSpy)を使用 [#kd68313d]
-以下からダウンロードできる。
--https://github.com/mikehadlow/AsmSpy
--http://static.mikehadlow.com/AsmSpy.zip
-以下のように使用する(net, netstd, netcore等で利用可能)。
AsmSpy C:\...\bin
**対策方法 [#m1fe4578]
***依存アセンブリのバージョンを一致させる [#f57a223f]
-この方法は、下位モジュールがNuGetパッケージだったりする...
-このような場合、以下のバインディング リダイレクトの方法...
***configファイルにバインディング リダイレクト セクション...
以下のように、[[*.configファイル>.NET config]]の、~
configuration -> runtimeセクション以下に~
バインディング リダイレクトを設定する。
<dependentAssembly>
<assemblyIdentity name="YYYY" publicKeyToken="YYYY" cu...
<bindingRedirect oldVersion="0.0.0.0-6.9.11.0" newVers...
</dependentAssembly>
※ 上記の「マップし直してください。」のバージョンを設定す...
***Projectファイルに自動バインディング リダイレクトを設定...
-手順
--(1)Projectファイルに以下を追加する。
<AutoGenerateBindingRedirects>true</AutoGenerateBindingR...
--(2)警告を確認する。
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
警告 "XXXXXXXXXX" の異なるバージョン間で、解決できない競...
これらの参照上の競合は、ログの詳細度が詳細に設定されてい...
--(3)対象アセンブリのdependentAssemblyを削除する。
<dependentAssembly>
<assemblyIdentity name="XXXXXXXXXX" publicKeyToken="XX...
<bindingRedirect oldVersion="0.0.0.0-n.0.0.0" newVersi...
</dependentAssembly>
--(4)以下の警告をダブルクリックしダイアログで「はい」...
同じ依存アセンブリの異なるバージョン間で競合が見つかりま...
Visual Studio では、この警告をダブルクリックする (または...
または、アプリケーション構成ファイル内の "runtime" ノー...
-参考
--有効にするか、自動生成されたバインド リダイレクトを無効...
https://docs.microsoft.com/ja-jp/dotnet/framework/configu...
***[[.NET Core]]の場合 [#h22fa04f]
-[[.NET Core]]には、バインディング リダイレクトが無い。
-特に、Microsoft.AspNetCore.App使用時などで、MSB3277が出...
ログを確認し、問題を起こしているバージョン間の新しい方(...
のNuGetパッケージを上位プロジェクトから上書きインストール...
-参考
--dependencies - Adding a bindingRedirect to a .Net Stand...
https://stackoverflow.com/questions/46111749/adding-a-bin...
*参考 [#m27af581]
-警告 : 同じ依存アセンブリの異なるバージョン間での競合が...
https://msdn.microsoft.com/ja-jp/library/bb383993.aspx
-警告:MSB3277が出た時の対処法メモ - Qiita~
https://qiita.com/hahifu/items/8dba20cd06fb0c3a9fa7
-.net - Resolving MSB3247 - Found conflicts between diffe...
https://stackoverflow.com/questions/1871073/resolving-msb...
-Code rant: AsmSpy: A little tool to help fix assembly ve...
http://mikehadlow.blogspot.com/2011/02/asmspy-little-tool...
----
Tags: [[:.NET開発]], [[:デプロイ]], [[:デバッグ]], [[:NuG...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-戻る
--[[NuGet]]
--[[MSBuild]]
* 目次 [#h43555c0]
#contents
*概要 [#gc03ed29]
-NuGetは非常に便利だが、この問題がよく起きるようになった。
-バインディング リダイレクトによって対応可能。
**問題の内容 [#l8d7ea1b]
以下のようなエラーが出た場合の対処。
-warning MSB3247: 同じ依存アセンブリの異なるバージョン間...
-warning MSB3247: Found conflicts between different versi...
**問題の対策 [#p8fe593d]
[[ビルド出力ログ>#k4519d36]]を確認して、バインディング リ...
*詳細 [#w8916156]
バインディング リダイレクトが設定されていない場合、~
以下のバージョン不一致のケースでも、競合が報告される。
-下位モジュールで、下位バージョンの依存関係モジュールを使用
-上位モジュールで、上位バージョンの依存関係モジュールを使用
**調査方法 [#b7a12c2f]
***ビルド出力の詳細化 [#k4519d36]
-ビルド出力のレベルを上げる。
--Visual Studioの場合
---[ツール] → [オプション] → [プロジェクトおよびソリュー...
---[MSBuild プロジェクト ビルドの出力の詳細(V)]を"詳細"に...
-MSBuildの場合
-- -verbosity(-v)スイッチに
-- levelオプションとして「d[etailed]」を指定する。
---q[uiet]
---m[inimal]
---n[ormal]
---d[etailed]
---diag[nostic]
-以下、"詳細"のビルド出力。
yyyy/MM/dd HH:mm:ss にビルドを開始しました。
ノード 1 上のプロジェクト "XXXX.sln" (既定のターゲット)。
ValidateSolutionConfiguration:
ソリューション構成 "Debug|Any CPU" をビルドしています。
プロジェクト "XXXX.sln" (1) は、ノード 1 上に "XXXX.cspr...
ResolveAssemblyReferences:
競合を解決して警告を消去するために、app.config でアセ...
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft....
GenerateTargetFrameworkMonikerAttribute:
すべての出力ファイルが入力ファイルに対して最新なので、タ...
CoreCompile:
すべての出力ファイルが入力ファイルに対して最新なので、タ...
_CopyAppConfigFile:
すべての出力ファイルが入力ファイルに対して最新なので、タ...
CopyFilesToOutputDirectory:
XXXX -> XXXX.dll
プロジェクト "XXXX.csproj" (既定のターゲット) のビルドが...
プロジェクト "XXXX.sln" (既定のターゲット) のビルドが完...
ビルドに成功しました。
"XXXX.sln" (既定のターゲット) (1) -> "XXXX.csproj" (既定...
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsof...
1 個の警告
0 エラー
経過時間 00:00:00.nn
※ 伏せているけど、上記は、バージョン番号からしてMySQL。~
このように、どの依存アセンブリでバージョン間の競合が起き...
***ツール(AsmSpy)を使用 [#kd68313d]
-以下からダウンロードできる。
--https://github.com/mikehadlow/AsmSpy
--http://static.mikehadlow.com/AsmSpy.zip
-以下のように使用する(net, netstd, netcore等で利用可能)。
AsmSpy C:\...\bin
**対策方法 [#m1fe4578]
***依存アセンブリのバージョンを一致させる [#f57a223f]
-この方法は、下位モジュールがNuGetパッケージだったりする...
-このような場合、以下のバインディング リダイレクトの方法...
***configファイルにバインディング リダイレクト セクション...
以下のように、[[*.configファイル>.NET config]]の、~
configuration -> runtimeセクション以下に~
バインディング リダイレクトを設定する。
<dependentAssembly>
<assemblyIdentity name="YYYY" publicKeyToken="YYYY" cu...
<bindingRedirect oldVersion="0.0.0.0-6.9.11.0" newVers...
</dependentAssembly>
※ 上記の「マップし直してください。」のバージョンを設定す...
***Projectファイルに自動バインディング リダイレクトを設定...
-手順
--(1)Projectファイルに以下を追加する。
<AutoGenerateBindingRedirects>true</AutoGenerateBindingR...
--(2)警告を確認する。
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
警告 "XXXXXXXXXX" の異なるバージョン間で、解決できない競...
これらの参照上の競合は、ログの詳細度が詳細に設定されてい...
--(3)対象アセンブリのdependentAssemblyを削除する。
<dependentAssembly>
<assemblyIdentity name="XXXXXXXXXX" publicKeyToken="XX...
<bindingRedirect oldVersion="0.0.0.0-n.0.0.0" newVersi...
</dependentAssembly>
--(4)以下の警告をダブルクリックしダイアログで「はい」...
同じ依存アセンブリの異なるバージョン間で競合が見つかりま...
Visual Studio では、この警告をダブルクリックする (または...
または、アプリケーション構成ファイル内の "runtime" ノー...
-参考
--有効にするか、自動生成されたバインド リダイレクトを無効...
https://docs.microsoft.com/ja-jp/dotnet/framework/configu...
***[[.NET Core]]の場合 [#h22fa04f]
-[[.NET Core]]には、バインディング リダイレクトが無い。
-特に、Microsoft.AspNetCore.App使用時などで、MSB3277が出...
ログを確認し、問題を起こしているバージョン間の新しい方(...
のNuGetパッケージを上位プロジェクトから上書きインストール...
-参考
--dependencies - Adding a bindingRedirect to a .Net Stand...
https://stackoverflow.com/questions/46111749/adding-a-bin...
*参考 [#m27af581]
-警告 : 同じ依存アセンブリの異なるバージョン間での競合が...
https://msdn.microsoft.com/ja-jp/library/bb383993.aspx
-警告:MSB3277が出た時の対処法メモ - Qiita~
https://qiita.com/hahifu/items/8dba20cd06fb0c3a9fa7
-.net - Resolving MSB3247 - Found conflicts between diffe...
https://stackoverflow.com/questions/1871073/resolving-msb...
-Code rant: AsmSpy: A little tool to help fix assembly ve...
http://mikehadlow.blogspot.com/2011/02/asmspy-little-tool...
----
Tags: [[:.NET開発]], [[:デプロイ]], [[:デバッグ]], [[:NuG...
ページ名: