我在 VS 2012(更新 4)中构建了一个相当大的解决方案(大约 50 个项目,所有 C#)。我注意到,在从 VS 中完成完全重建后,直接进行构建(按 F6)会导致一个项目重建,尽管我没有触及任何东西。
第二次调用 build 正确检测到所有项目都是最新的。
将 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 从“构建开始”行开始。