ResolveAssemblyReference缓慢--msbuild速度
本文关键字:速度 --msbuild 缓慢 ResolveAssemblyReference | 更新日期: 2023-09-27 18:28:53
我有一个项目,里面可能有200多个项目。这是一只老鸟。为了使本地构建更快,我运行了一个诊断构建。解析程序集和项目引用似乎需要msbuild一段时间。VS似乎做得很快,有没有办法让MSBuild为这些引用使用缓存,或者以某种方式更快地解决它?
MSBuild似乎不需要用增量生成来解析程序集引用,对吧?
有没有办法让MSBuild报告其内部依赖关系树?
VS使用相同的MSBuild引擎来执行构建,因此无论您从VS中观察到什么性能,都应该能够通过使用MSBuild.exe从命令行启动构建来实现。
有几点需要记住,这可能解释VS和命令行之间构建速度的差异:
- 如果您在VS中构建"仅项目",即右键单击项目节点,从"仅项目(Project Only)"菜单中选择"构建项目(this)",则构建将跳过构建任何引用的项目。这是进行增量构建的最快方法,但您必须提前知道所有依赖项都是最新的
如果您想从命令行复制它,只需传递参数BuildProjectReferences=false。例如:
msbuild myproject.csproj /p:BuildProjectReferences=false
- VS的默认值可能设置为多进程构建,这在许多情况下大大提高了构建速度。然而,在命令行上,默认值始终是执行单进程构建,因此这看起来比VS慢得多。始终将/m传递到msbuild命令行。例如:
msbuild-MySolution.sn/m