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

poo*_*a13 4 .net msbuild build dotnet-cli

使用msbuild命令我可以这样做:

msbuild -m
Run Code Online (Sandbox Code Playgroud)

使用多个核心进行构建。

这可以通过dotnet build命令实现吗?

查看文档我看到:

dotnet build 使用 MSBuild 来构建项目,因此它支持并行和增量构建。有关更多信息,请参阅增量构建

但是,链接的 MSBuild 文档仅讨论如何在定义目标时启用增量构建,而没有提及有关启用并行构建的任何内容。

Chr*_*n.K 6

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

<Project>
  <Target Name="Test">
    <Message Importance="high" Text="MSBuildNodeCount: $(MSBuildNodeCount)"/>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

这会产生以下输出:

> msbuild .\test.proj
...
  MSBuildNodeCount: 1
Run Code Online (Sandbox Code Playgroud)
> msbuild .\test.proj /m
...
  MSBuildNodeCount: 16
Run Code Online (Sandbox Code Playgroud)

对于dotnet build

> dotnet build .\test.proj
...
  MSBuildNodeCount: 16
Run Code Online (Sandbox Code Playgroud)
> dotnet build .\test.proj -m:1
...
  MSBuildNodeCount: 1
Run Code Online (Sandbox Code Playgroud)

总之,使用 MSBuild,您默认为非并行并显式启用并行。默认dotnet build为并行,并且可以显式强制非并行。

-m对于任一工具,您都可以使用带有(或)的显式值-maxcpucount来设置特定值,而不使用所有处理器的计数。