关于在命令行中使用MSBuild构建解决方案文件以及在Visual Studio 2013 Update 4中进行构建解决方案文件时,我有一个问题。我使用的解决方案文件包含很多项目。
案例:使用MSBuild
成功构建解决方案文件后,如果我再次尝试构建它,MSBuild会通知我项目是最新的并且它不会尝试编译任何源文件,这显然是预期的行为。然而,它实际上试图执行或遍历构建步骤中的目标,试图确定输出文件是否已过时,并且这对于解决方案中存在的每个项目都会发生。即使它没有再次构建解决方案,检查每个项目的文件时间戳的过程实际上需要很长时间。
案例:使用Visual Studio
在Visual Studio中进行此操作时,在成功构建之后,如果我尝试再次构建解决方案,那么它会自动通知我项目是最新的。它实际上需要几秒钟才能返回此输出。查看构建输出,我注意到Visual Studio在构建步骤中并没有真正执行目标,以得出项目是最新的。所以我认为必须使用不同的东西来检查项目的状态。
我真的希望弥合这两个"世界之间的性能差距。我将非常感谢有关Visual Studio如何执行此检查的任何帮助或提示,或者我可以在MSBuild中实现类似的方法。
干杯!