Web サイト プロジェクトと C# ライブラリを使用した C# ソリューションがあります。ソリューションをコンパイルすると、Web サイトに次のメッセージが表示されます。
プロジェクト参照 'MyLibrary' の依存関係を取得できませんでした。
このエラーメッセージがビルドに失敗した場合、TFSビルドでビルドしようとするまで、これはwbsiteのコンパイルと実行を停止しません。
これは何を意味し、どうすればそれを回避できますか?
いろいろ試した結果、あることに気づきました。ビルドなどをクリアするために何をしても、エラーが消えることはありませんでした。ソリューションを閉じて再度開くと、消えました。
「プロジェクト参照の依存関係を取得できませんでした」というエラー メッセージが表示された場合、考えられる原因の 1 つは、参照元プロジェクトのターゲット フレームワークと互換性のないターゲット フレームワークを持つソリューション内の別のプロジェクトを参照している可能性があります。
プロジェクトのプロパティに移動し、左側の [アプリケーション] タブを選択すると、プロジェクトに指定されたターゲット フレームワークを確認できます。
これを書いているのは、たまたま、ターゲット フレームワーク 3.5 のプロジェクトからターゲット フレームワーク 4.0 のプロジェクトを参照していたからです。
メモ帳で Web サイトの proj ファイルを開き、参照などを確認してください。
私の場合、参照プロジェクトは VS 2010 で作成されましたが、参照プロジェクトは VS 2008 ソリューションでした。この場合、vs 2010 プロジェクトをメモ帳で編集し、ToolsVersion="4.0" を ToolsVersion="3.5" に変更しました。
「TFSビルド」とは、別のビルドサーバーを使用していることを意味する場合は、ビルドサーバーが使用しているビルド構成を確認してみてください。
たとえば、ローカルマシンでビルドする場合、ビルドサーバーがリリース構成を使用しているときにデバッグ構成をターゲットにしている可能性があります。
各ビルド構成で、プロジェクト「MyLibrary」がビルド対象として選択されていることを確認できます。
あなたの参照を見てください。MyLibrary のプロジェクト参照のパスが正しいことを確認してください。
私はそれを削除して追加しようとします。次に、ビルドの代わりに、Rebuild Solution を選択します。
これは、VS SDK の公式のバグです。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=276380
これを開くと、次のように書かれていました: Von Microsoft am09.05.2007 um 19:05 bereitgestellt
ご意見をいただきありがとうございます。このバグは Visual Studio 2005 SP1 で再現されており、トリアージと解決のために VisualStudio 製品チーム内の適切なグループにこのバグを送信しています。
ありがとう、Visual Studio 製品チーム。
このバグは Web サイト プロジェクトにまだ存在していると思います。VS 20102 Ultimate を使用します。仮想ディレクトリの下の \APP_CODE にアプリケーションがあり、ソース コードが C# である DLL が 2 つあり、ソース コードが RemObjects の Oxygene、OXygene (PASCAL) である DLL が 3 つあります。この参照は、PASCAL で記述された DLL でのみ見られます。しかし、テスト アプリケーションからこの 3 つの DLL をテストすると、すべて問題なく、テスト アプリケーションはこの 3 つの DLL 内のクラスまたは変数を参照しても問題ありません。では、VS 出力ウィンドウに次のエラー文字列が表示されるコンパイル/ビルドの違いは何でしょうか。何度も言いますが、消えないエラー。
プロジェクト参照 'Toolbox' の依存関係を取得できませんでした プロジェクト参照 'IMPLEM' の依存関係を取得できませんでした プロジェクト参照 'LEGACY' の依存関係を取得できませんでした Web サイトを検証しています
ソリューションをクリーニングして再構築した後でもこの問題が常に発生する場合は、参照されているプロジェクトのいずれかに問題があることを意味します。コンパイル プロセス中に警告が表示されていないか、[出力] ウィンドウを確認します。警告を修正すると、コンパイルが成功する可能性があります。
「Clean Solution」は役に立ちません。Web サイト プロジェクト (Bin フォルダー) から DLL を手動で削除する必要がある場合があります。DLL を削除し、ソリューションを再度ビルドします。
プロジェクトの構成を確認してみてください。「任意のCPU」に変更すると機能することに気付きました。