[解決済み] MSB3247 の解決 - 同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
質問
.NET 3.5のソリューションで、msbuildでコンパイルするとこのような警告が表示されました。
NDepend が助けてくれることもありますが、この場合はそれ以上の詳細を教えてくれませんでした。 ボブと同じ 結局、依存するアセンブリの古いバージョンを参照しているアセンブリを見つけるまで、ILDASMでそれぞれのアセンブリを開くという手段に訴えることになりました。
VS 2010 Beta 2のMSBUILDを使ってみましたが(Connectの記事でCLRの次のバージョンで修正されるとあったので)、これも詳細は分かりませんでした(たぶんBeta 2以降で修正されたのでしょう)。
もっと良い(自動化された)方法はないのでしょうか?
どのように解決するのですか?
MSBuildプロジェクトのビルド出力の冗長性("Detailed"以上)を変更します。これを行うには、以下の手順に従います。
- オプション]ダイアログを表示する( ツール -> オプション... ).
-
左側のツリーで
プロジェクトとソリューション
ノードを選択し
ビルドと実行
.
- 注意:このノードが表示されない場合は、ダイアログの下部にあるチェックボックスで すべての設定を表示する がチェックされています。
-
表示されたツール/オプションのページで MSBuildプロジェクトのビルド出力の冗長性 レベルをバージョンに応じた適切な設定にします。
- 診断機能 VS2012、VS2013、VS2015 の場合(これらのバージョンでのメッセージは とは を使用する必要があります。 とありますが、これは明らかに間違っています。 )
- 詳細 VS2010 の場合
- 通常 は、VS2008以前で十分です。
- プロジェクトをビルドして、出力ウィンドウを見ます。
MSBuildのメッセージを確認します。その
ResolveAssemblyReferences
タスクは、MSB3247 の原因となったタスクであり、この特定の問題をデバッグするのに役立つはずです。
私の具体的なケースは、SqlServerCeの参照が正しくないというものでした。以下を参照してください。私は2つのプロジェクトで、2つの異なるバージョンのSqlServerCeを参照していました。私は古いバージョンのプロジェクトに行き、参照を削除し、正しい参照を追加しました。
Target ResolveAssemblyReferences:
Consider app.config remapping of assembly "System.Data.SqlServerCe, ..."
from Version "3.5.1.0" [H:\...\Debug\System.Data.SqlServerCe.dll]
to Version "9.0.242.0" [C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PublicAssemblies\System.Data.SqlServerCe.dll]
to solve conflict and get rid of warning.
C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets :
warning MSB3247: Found conflicts between different versions of the same dependent assembly.
参照されているアセンブリのバージョンを判断するために、各アセンブリを開く必要はありません。
- 各リファレンスのプロパティを確認することができます。
- プロジェクトのプロパティを開き、Referencesセクションのバージョンを確認します。
- テキストエディターでプロジェクトを開きます。
- .Net Reflectorを使用します。
関連
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] .net 4.5アップグレード後、System.Web.Httpが見つからない
-
[解決済み] .Netの配列のLongLengthの目的は何ですか?
-
[解決済み] VB.NETでファイル名を一意のサフィックスに変更するには?
-
[解決済み] app.configが作成されるタイミングとapp.exe.configが作成されるタイミング、その違いとは?
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] .Any() vs .Count() > 0のどちらのメソッドがより良いパフォーマンスを発揮しますか?
-
[解決済み] LINQクエリでToList()とToArray()のどちらを呼び出すのが良いですか?
-
[解決済み] WCF - メッセージサイズのクォータを増加させる方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] Microsoft.Practices.ServiceLocationはどこから来たのですか?
-
[解決済み] WCF エラーの解決。このサービスのメタデータパブリッシングは現在無効になっています。
-
[解決済み] .net 4.5アップグレード後、System.Web.Httpが見つからない
-
[解決済み] EF Coreのadd-migrationのビルドに失敗しました。
-
[解決済み] スマートクライアント・ソフトウェアファクトリーの体験談
-
[解決済み] .NET Framework 4 マルチターゲティングパックがアンインストールできない
-
[解決済み] 権限 '*' を持つ SSL/TLS の安全なチャネルを確立できませんでした。
-
[解決済み] 埋め込みリソーステキストファイルの読み方
-
[解決済み] MemoryStreamから文字列を取得する方法は?