除非我对MSBuild的理解严重错误,否则任务将按它们在“Target”节点内部出现的文档顺序执行。
我希望能够指定两个任务(例如xcopy任务)可以并行运行。 我原本期望会有一个“Parallel”任务或类似的东西…?
除非我对MSBuild的理解严重错误,否则任务将按它们在“Target”节点内部出现的文档顺序执行。
我希望能够指定两个任务(例如xcopy任务)可以并行运行。 我原本期望会有一个“Parallel”任务或类似的东西…?
尝试使用MSBuild扩展包中的新并行任务 - http://mikefourie.wordpress.com/2012/02/29/executing-msbuild-targets-in-parallel-part-1
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Build">
<Target Name="Build" DependsOnTargets="PrepareEnvironmentForBuild;MapDrives">
<Exec Command="$(MSBuildBinPath)\msbuild /nologo /clp:Verbosity=quiet $(MSBuildThisFileFullPath) /t:TargetWithConfidentialSteps"/>
<ItemGroup>
<StepsToRunInParallel Include="$(MSBuildThisFileFullPath)">
<Properties>TargetToInvoke=ParallelTarget1</Properties>
</StepsToRunInParallel>
<StepsToRunInParallel Include="$(MSBuildThisFileFullPath)">
<Properties>TargetToInvoke=ParallelTarget2</Properties>
</StepsToRunInParallel>
</ItemGroup>
<MSBuild Projects="@(StepsToRunInParallel)" BuildInParallel="true" StopOnFirstFailure="true" Targets="InvokeInParallelWithinThisProject"/>
</Target>
<Target Name="InvokeInParallelWithinThisProject">
<MSBuild Projects="$(MSBuildThisFileFullPath)" Targets="$(TargetToInvoke)" StopOnFirstFailure="true"/>
</Target>
<Target Name="ParallelTarget1">
<Message Text="Hello from ParallelTarget1"/>
</Target>
<Target Name="ParallelTarget2">
<Message Text="Hello from ParallelTarget2"/>
</Target>
<Target Name="PrepareEnvironmentForBuild">
<Message Text="Hello from PrepareEnvironmentForBuild"/>
</Target>
<Target Name="MapDrives">
<Message Text="Hello from MapDrives"/>
</Target>
<Target Name="TargetWithConfidentialSteps">
<Message Text="Hush! Verbosity on the wrapper does not affect the Exec call." Importance="High"/>
</Target>
/m
标志调用 MSBuild.exe... 我没有这样做,很失望它没有并行构建... - Prof. Falken我认为除了使用一些外部工具,没有其他方法可以做到这一点。我怀疑这是因为这会引入潜在的依赖问题,微软目前选择忽略它,从而让外部工具供应商解决这个问题(并收取相当高的费用)。
对于C++,您可以使用以下方法实现
<MultiProcessorCompilation>true</MultiProcessorCompilation>
如果您在项目的属性页面下搜索“C++ > 所有选项”下的“multi”,就可以找到它。
更多信息请参见:https://devblogs.microsoft.com/cppblog/recommendations-to-speed-c-builds-in-visual-studio/