1

我有一个项目,其中可能有 200 多个项目。这是一只老鸟。为了使本地构建更快,我运行了诊断构建。似乎解决程序集和项目引用需要 msbuild 一段时间。VS 似乎做得很快,有没有办法让 MSBuild 为这些引用使用缓存,或者以某种方式更快地解决它?

似乎 MSBuild 不需要经常通过增量构建来解决程序集引用,对吧?

有没有办法让 MSBuild 为此报告其内部依赖关系树?

4

1 回答 1

0

VS 使用相同的 MSBuild 引擎来执行构建,因此无论您从 VS 观察到什么性能,您都应该能够通过使用 MSBuild.exe 从命令行启动构建来实现。

有几点需要牢记,这可能解释了 VS 和命令行之间构建速度的差异:

  1. 如果在 VS 中构建“Project Only”,即右键单击项目节点,从“Project Only”菜单中选择“Build Project (this)”,则构建会跳过构建任何引用的项目。这是进行增量构建的最快方法,但您必须提前知道所有依赖项都是最新的。

如果您想从命令行复制它,只需传递参数 BuildProjectReferences=false。例如:

msbuild myproject.csproj /p:BuildProjectReferences=false
  1. 可以为多进程构建设置 VS 的默认值,这在许多情况下会大大提高构建速度。但是在命令行上,默认总是执行单进程构建,所以这看起来比 VS 慢得多。始终将 /m 传递给 msbuild 命令行。例如:
msbuild MySolution.sln /m
于 2014-11-02T20:13:04.300 回答