poo*_*a13 4 .net msbuild build dotnet-cli
使用msbuild命令我可以这样做:
msbuild -m
Run Code Online (Sandbox Code Playgroud)
使用多个核心进行构建。
这可以通过dotnet build命令实现吗?
查看文档我看到:
dotnet build 使用 MSBuild 来构建项目,因此它支持并行和增量构建。有关更多信息,请参阅增量构建。
但是,链接的 MSBuild 文档仅讨论如何在定义目标时启用增量构建,而没有提及有关启用并行构建的任何内容。
该dotnet build命令将默认为并行构建,例如相当于使用msbuild -m或msbuild -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来设置特定值,而不使用所有处理器的计数。