MSbuild需要比预期更长的时间

时间:2014-02-25 11:44:19

标签: c# msbuild

我有一个有很多依赖项的小项目。我更改了项目中的一个文件,并注意到MSBuild也重新编译了所有依赖项。什么可能导致这个?这是默认行为,如果是,我该如何更改?

如果重要的话我正在通过命令行编译(而不是从visual studio编译)

1 个答案:

答案 0 :(得分:0)

它可以构建它们,或者只是检查依赖项以确定它们是否需要重建。

首先,解决方案中有哪些项目?更模糊的项目类型可能具有未考虑增量构建的目标,并且可能存在错误行为(例如2012 SQL项目总是在重建,因为它尝试将SQLVAR参数解析为文件位置)。

这里有一些建议可以帮助你:

首选文件记录器,允许您在不依赖控制台缓冲区的情况下进行故障排除。

msbuild.exe MySolution.sln /fl3 /flp3:warningsonly;logfile=msbuild.wrn /fl4 /flp4:errorsOnly;logfile=msbuild.err /fl5 /flp5:Verbosity=diag;logfile=msbuild.log

这将生成三个日志,两个用于警告和错误,以及一个具有最高详细程度的日志。打开msbuild.log并识别其中一个依赖项的构建。

构建日志是否表示已跳过目标?

Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files.

还是他们被重建了?

Building target "SqlBuild" completely.

MsBuild可以并行构建您的项目。 提高性能的另一个技巧是并行构建项目。 MsBuild是调度程序,可以使用神奇的“/ m”开关并行构建您的依赖项!