Visual studio 2013 在Visual Studio内部使用MSBuild Vs生成解决方案文件

Visual studio 2013 在Visual Studio内部使用MSBuild Vs生成解决方案文件,visual-studio-2013,msbuild,Visual Studio 2013,Msbuild,在从命令行使用MSBuild构建解决方案文件和在Visual Studio 2013 Update 4中构建解决方案文件时,我注意到了一个问题。我正在使用的解决方案文件包含许多项目 大小写:使用MSBuild 成功构建解决方案文件后,如果我再次尝试构建它,MSBuild会通知我项目是最新的,并且它不会尝试编译任何源文件,这显然是预期的行为。尽管如此,它实际上尝试执行或遍历构建步骤中的目标,试图确定输出文件是否过期,这对于解决方案中存在的每个项目都会发生。即使不再构建解决方案,检查每个项目的文件时

在从命令行使用MSBuild构建解决方案文件和在Visual Studio 2013 Update 4中构建解决方案文件时,我注意到了一个问题。我正在使用的解决方案文件包含许多项目

大小写:使用MSBuild

成功构建解决方案文件后,如果我再次尝试构建它,MSBuild会通知我项目是最新的,并且它不会尝试编译任何源文件,这显然是预期的行为。尽管如此,它实际上尝试执行或遍历构建步骤中的目标,试图确定输出文件是否过期,这对于解决方案中存在的每个项目都会发生。即使不再构建解决方案,检查每个项目的文件时间戳的过程实际上需要相当长的时间

案例:使用Visual Studio

在VisualStudio中执行此操作时,在成功构建之后,如果我再次尝试构建解决方案,它会自动通知我项目是最新的。返回此输出实际上需要几秒钟的时间。查看构建输出,我注意到VisualStudio并没有真正执行构建步骤中的目标,从而得出项目是最新的结论。所以我想它一定是用不同的东西来检查项目的状态

我真的很想弥合这两个“世界”之间的性能差距。如果有任何关于VisualStudio如何执行此检查的帮助或提示,或者我可以在MSBuild中实现类似内容的方法,我将不胜感激


干杯

VisualStudio不生成任何内容,它使用MSBuild来完成任务。文件戳记检查所需的时间完全取决于在磁盘上找到文件所需的时间。在VS中构建时,它会在加载项目时检查文件,因此信息在文件系统缓存中仍然是新鲜的。特定于C++,/GM选项可以加快构建。VS永远不会忘记对MSBuild使用/M选项。一般来说,如果你想走得更快,那么一定要买更多的RAM和SSD。我有足够的RAM,正在使用SSD。在命令行上使用msbuild构建解决方案时,是否不可能复制相同的性能?我注意到的一点是,当在VS中构建已经更新的项目时,它不会输出任何与构建步骤目标的执行有关的内容,在构建步骤中,它会检查文件戳,即使输出处于诊断模式。这就是为什么我问VS是否使用其他机制来检查项目的状态。或者仅仅是由于项目的初始加载导致了性能的提高?