如何在.NET SDK样式.csproj中设置BuildInParallel =“false”?

问题描述 投票:0回答:1

如何在我的 .csproj 中设置 BuildInParallel="false" ?

在以下示例中,.csproj 有两个构建目标

net6.0
net8.0
。默认情况下,它们在 Visual Studio Professional 2022 IDE 构建中并行构建过程中运行。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
  </PropertyGroup>

  <!-- it makes scripts.zip before build -->
  <Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Command="call make_zip.bat" />
  </Target>

  <ItemGroup>
    <Content Include=".\scripts.zip" CopyToOutputDirectory="Always" />
  </ItemGroup>

</Project>

我有一个

PreBuild
操作,可以从一些脚本和 python 文件生成 zip 文件。最终的 scripts.zip 将是最终构建的内容。因为默认情况下,
net6.0
net8.0
在并行构建过程中运行,
make_zip.bat
尝试为每个构建并行运行,但不幸的是它会一直崩溃,因为相同的文件很忙并且无法将它们压缩两次以并行时间相同的输出 zip 文件。

如果我使用

dotnet
命令行和
-p:BuildInParallel=false
进行构建,我可以解决这个问题。但是我如何强制在 .csproj 文件中使用
BuildInParallel=false
以便在 Visual Studio Professional 2022 IDE 中也将其用作默认设置?

c# .net visual-studio csproj dotnet-cli
1个回答
0
投票

根据您的描述,我能够成功重现您遇到的问题: enter image description here

如果想在.csproj中设置BuildInParallel="false",只需要添加

<BuildInParallel>false</BuildInParallel>
enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.