BuildInParallel=true
属性使用并行构建。
我需要分组构建它们,因为某些项目已经建立了二进制文件生成步骤,而其他一些项目则需要它们才能构建,这需要大约2秒钟。这里是我建立组的顺序:- BuildGroup1
fixeddelay
建筑物
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<SolutionProjects Include="$(MSBuildProjectDirectory)/MyApp.sln">
<GetSolutionProjects/>
</SolutionProjects>
</ItemGroup>
<ItemGroup>
<RemainingProjects Include="@(SolutionProjects)" Exclude="@(BuildGroup1);"/>
</ItemGroup>
<Target Name="BuildGroup1">
<MSBuild Projects="
../CoreProject1.csproj;
../CoreProject2.vcxproj;
../CoreProject3.vcxproj;
../CoreLibrary1.vcxproj;
../CoreLibrary2.csproj;
../CoreLibrary3.csproj;
../CoreLibrary4.vcxproj;
"/>
</Target>
<Target Name="FixedDelay" DependsOnTargets="BuildGroup1">
<Exec Command="PowerShell -Command Start-Sleep -Seconds 3"/>
<Message Text ="Delay Complete. Starting BuildGroup2..." Importance="high"/>
</Target>
<Target Name="BuildRemaining" DependsOnTargets="FixedDelay;">
<MSBuild Projects="@(RemainingProjects)"
/>
</Target>
<Target Name="BuildAll" DependsOnTargets="BuildGroup1;FixedDelay;BuildRemaining"/>
</Project>
msbuild customBuild.proj /t:BuildAll /m /p:Configuration=Release /p:Platform=x64 /p:BuildInParallel=true
BuildGroup1
RemainingProjects
针对MyApp.Sln
和MyApp.Sln
中的项目具有所有需要构建的项目。我面临的问题是,即使我为
BuildGroup1
项目添加了一个排除,但在调用BuildGroup1
时,它们再次被构建。我如何在.sln中动态构建项目或如何防止MSBUILD重建已经构建的项目。
从构建中查看Exclude文件,恐怕
BuildRemaining
元素不支持将值分配给上面的writh。
Exclude
置换如下:
Target