この記事は、複数のプロジェクトでソリューションをビルドし、それらのプロジェクト間に依存関係が存在する場合に、Microsoft Visual Studio 2010 のビルド エラーを解決するのに役立ちます。
元の製品バージョン: Visual Studio Professional 2010、Visual Studio Premium 2010、Visual Studio Ultimate 2010
元の KB 番号: 2516078
症状
Visual Studio 2010 では、複数のプロジェクトを含むソリューションをビルドしようとしたときに、それらのプロジェクト間に依存関係が存在する場合、特定の条件ではビルドが失敗し、次のエラー メッセージが表示されます。
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (1200, 9): 警告: 参照先プロジェクト '現在のディレクトリから参照されているプロジェクトへの相対パス' が存在しません。"
次の条件が満たされると、上記のエラー メッセージでビルドが失敗します。
複数のプロジェクトを含むソリューションがあり、それらのプロジェクト間に依存関係が存在します。
次の 2 つのパスの長さの合計は、259 文字まで正確に加算されます (=
MAX_PATH - 1
)- 参照元プロジェクトのディレクトリのパス。
- 現在のディレクトリから参照されているプロジェクトへの相対パス (= 参照元プロジェクトのディレクトリ)。
ノート
MAX_PATH
は、Windows API によって定義される最大パス長であり、260 文字に設定されます。
原因
この問題は、.NET Framework ライブラリの Path.GetFullPath
のバグが原因で発生します。
これは Visual Studio 2010 の既知の問題です。
Path.GetFullPath
メソッドの詳細については、「Path.GetFullPath メソッド」を参照してください。
回避策
この問題を回避するには、パスの長さを変更し、次の 2 つのパス長の合計が最大 259 文字まで加算されないようにします。
- 参照元プロジェクトのディレクトリのパス。
- 現在のディレクトリから参照されているプロジェクトへの相対パス (= 参照元プロジェクトのディレクトリ)。