このビルド エラーの原因を特定する方法を知りたいです。
Warning 4 The primary reference "MyNamespace.MyProject" could not be resolved because
it has an indirect dependency on the .NET Framework assembly "System.Xml, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than
the version "2.0.0.0" in the current target framework. MyNamespace.MyOtherProject
私はこのエラーの意味を理解しています (そして、この同じプロジェクトで他の 5 人がそれを気に入っています) が、私の場合は解決方法がわかりません。この場合の「プライマリ リファレンス」(MyNamespace.MyProject) には、.NET 4.0.x への直接的な依存関係はありません。
プライマリ リファレンスは、私の他の 1 つのプロジェクト (MyNamespace.MyCoreProject) のみに依存し、ビルドのソース プロジェクト (MyNamespace.MyOtherProject) も直接依存しています。そして、ビルドはそのプロジェクトが .NET 4.0.x への間接参照を持っていることについて不平を言っていないので、それを除外できると思います。
プライマリ リファレンスは、3 つのサードパーティ DLL に直接依存しており、そのすべてが .NET 2.0 をターゲットにしています。
ビルドされたライブラリを調べるために dotPeek を使用しましたが、.NET 4.0 を使用したものへの参照が表示されません。
作業中の他の唯一の潜在的なスパナは、'MyNamespace.MyCoreProject' (プライマリ参照プロジェクトによって参照される) によって直接参照される PostSharp の使用です。 PostSharp.dll (http://www.sharpcrafters.com/forum/Topic4444-4-1.aspx#bm4462) を参照していますが、これもビルド チェーンから削除しましたが、このエラーが引き続き表示されるため、ルールも適用できると想定しています。それを。
誰かがなぜこれが起こっているのか教えてくれたら、素晴らしいです! そうでない場合は、名前のない「間接参照」が何であるかを理解する方法についての指示があれば、同じように役立ちます!
ちなみに、情報を得るために次のツールをすべて試しましたが、私がまだ知らなかった多くのことを教えてくれませんでした (問題の DLL の直接的な依存関係です)。- .NET Reflector - dotPeek - IldAsm - Depends (Dependency Walker)