如何在编译多个文件时使MSBuild使用更多线程?

时间:2012-12-03 18:05:19

标签: msbuild multiprocessing

我有一个MSBuild文件,用于编译目录中的700多个头文件。它工作得很好,只需要很长时间......如果可能的话,我希望使用多个进程更快地编译这些文件。 任何人都有关于如何做到这一点的想法,使用这个XML作为开始?

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
        xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >

<PropertyGroup>
    ...
</PropertyGroup>

<ItemGroup>
    <SDKFiles   Include="$(CompileDir)\**\*.h" 
            Exclude="$(CompileDir)\**\...;
                    ...
</ItemGroup>

<UsingTask TaskName="CL" AssemblyFile="$(VCTargetsPath)\Platforms\x64\Microsoft.Build.CPPTasks.x64.dll"   Condition="'$(Platform)'=='x64'" />
<UsingTask TaskName="CL" AssemblyFile="$(VCTargetsPath)\Platforms\Win32\Microsoft.Build.CPPTasks.Win32.dll" Condition="'$(Platform)'=='Win32'" />

<Target Name="CompileStuff">
...
    <!-- This CL.exe compiles all the files -->
    <CL Sources="@(SDKFiles)" CompileAs="CompileAsCpp" SuppressStartupBanner="true" ObjectFileName="$(IntDir)" WarningLevel="$(Warnings)" ExceptionHandling="Sync" />
    ...
</Target>
</Project>

我尝试了以下方法,但没有成功: 1.在命令行上传入/ m到MSBuild。 2.我尝试了一些指定多进程的XML设置,但它也没有用。

由于

1 个答案:

答案 0 :(得分:2)

因为在过去的5个月中没有人帮助过,我不妨说我必须编写自己的任务扩展。该任务使用多个线程来编译传入的文件。