VS 2012 (更新 4) で構築しているかなり大きなソリューション (約 50 プロジェクト、すべて C#) があります。VS 内から完全な再構築を行った後、すぐにビルド (F6 を押す) を実行すると、何も触れていませんが、1 つのプロジェクトが再構築されることに気付きました。
build を 2 回目に呼び出すと、すべてのプロジェクトが最新であることが正しく検出されます。
msbuild の出力を診断に設定し、最初のビルド呼び出しの出力を調べると、次のようになります。
NuGet package restore started.
Restoring NuGet packages for solution XXX.
[... some boring lines on NuGet Package restore]
All packages are already installed and there is nothing to restore.
NuGet package restore finished.
Project 'YYY' is not up to date. Last build was with unsaved files.
------ Build started: Project: YYY, Configuration: Debug Any CPU ------
Build started 21-11-2013 21:20:54.
Project 'YYY' is not up to date. Last build was with unsaved files.
保存されていないファイルがないというメッセージに特に興味をそそられます。興味深いことに、このメッセージを検索するとき、Google と Bing の両方がヒットしません。
これを引き起こす原因についての手がかりはありますか?ビルド プロセスのこの部分をデバッグするにはどうすればよいですか? ビルド プロセスのこの部分は、MsBuild が呼び出される前でもあると思います (少なくとも新しい NuGet パッケージの復元機能は、MsBuild が呼び出される前に行われます。MsBuild は「ビルド開始」行から開始されると思います。