.net 如何使用dotnet build命令并行构建(使用所有内核)

chy5wohz  于 2023-05-30  发布在  .NET
关注(0)|答案(2)|浏览(318)

使用msbuild命令可以执行以下操作:

msbuild -m

来构建多个内核。

dotnet build命令可以实现吗?

看看documentation,我看到:
dotnet build使用MSBuild来构建项目,因此它支持并行和增量构建。有关详细信息,请参阅Incremental Builds
但是,链接的MSBuild文档只讨论了如何在定义目标时启用增量构建,而没有提到任何有关启用并行构建的内容。

omqzjyyz

omqzjyyz1#

dotnet build命令将默认用于并行构建,例如相当于使用msbuild -mmsbuild -m:1。您可以通过使用下面的测试项目看到这一点。

<Project>
  <Target Name="Test">
    <Message Importance="high" Text="MSBuildNodeCount: $(MSBuildNodeCount)"/>
  </Target>
</Project>

这将产生以下输出:

> msbuild .\test.proj
...
  MSBuildNodeCount: 1
> msbuild .\test.proj /m
...
  MSBuildNodeCount: 16

对于dotnet build

> dotnet build .\test.proj
...
  MSBuildNodeCount: 16
> dotnet build .\test.proj -m:1
...
  MSBuildNodeCount: 1

总之,对于MSBuild,您默认为非并行并显式启用并行。在dotnet build中,默认为并行,并且可以显式强制非并行。
对于这两种工具,您都可以使用-m(或-maxcpucount)的显式值来设置特定值,而不使用所有处理器的计数。

yuvru6vn

yuvru6vn2#

dotnet build command将接受MSBuild选项。
你能做到

dotnet build -m

相关问题