Visual studio 2013 如何让其他XGSubmited任务与visual studio生成任务共享CPU?

Visual studio 2013 如何让其他XGSubmited任务与visual studio生成任务共享CPU?,visual-studio-2013,parallel-processing,build-process,incredibuild,Visual Studio 2013,Parallel Processing,Build Process,Incredibuild,我可以将IncredBuild用作visual studio扩展包,以使用许多CPU构建代码 我还可以使用xgconsole msbuild。。。指挥部 但是如果我想在vc构建的同时添加一些其他任务。所以我尝试了一些方法: 使用批处理config.bat: xgSubmit /command task1 xgSubmit /command task2 msbuild ***.sln /t:rebuild 然后使用命令 xgConsole/command=“config.bat”/profi

我可以将IncredBuild用作visual studio扩展包,以使用许多CPU构建代码

我还可以使用xgconsole msbuild。。。指挥部

但是如果我想在vc构建的同时添加一些其他任务。所以我尝试了一些方法:

  • 使用批处理config.bat:

    xgSubmit /command task1
    xgSubmit /command task2
    msbuild  ***.sln /t:rebuild
    
  • 然后使用命令

    xgConsole/command=“config.bat”/profile=pro.xml

    我的pro.xml如下所示:

    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <Profile FormatVersion="1">
    <Tools>
        <Tool Filename="MSBuild" AllowIntercept="true" />
        <Tool Filename="Tracker" AllowIntercept="true" />
        <Tool Filename="CL" AllowIntercept="true" />
        <Tool Filename="Tracker" AllowRemote="true" />
        <Tool Filename="CL" AllowRemote="false" />
    </Tools>
    </Profile>
    
    
    
    但问题是,tracker进程创建了一个cl进程,然后cl进程创建了许多其他cl进程。因此,我在xml配置文件中将cl设置为allowinetcept和AllowRemote。但是使用此xml配置,xgconsole无法将cl进程分派到其他CPU,只需报告一个错误即可

  • 所以我尝试了另一种方法: 我将Visual Studio cl.exe重命名为clChild.exe,并备份另一个,将其命名为clorigin.exe
  • 然后我设计了自己的
    cl.exe
    。在我自己的
    cl.exe
    中,我检查父进程是否为
    tracker.exe
    ,然后启动
    clorigin.exe
    ,并将命令para传输给它,然后等待
    clorigin.exe
    终止;如果父进程是
    cl.exe
    ,那么我启动
    clchild.exe

    但这种方式也没有用。简单地说,你可以认为这是没有用的

    所以我想也许我不应该通过
    StartProcess
    API启动
    clorigin.exe
    ,它只是启动另一个进程;也许我应该在unix中作为
    execute
    api来执行,当启动子进程时,在taskmanager中它只能看到父进程,这意味着只有父进程才能完成另一个exe的任务,但不能创建新的进程id


    也许我的想法是错误的,但是如何让其他任务与visual studio编译任务共享并同时分派到多个CPU?

    使用IncredBuild visual studio插件(或BuildConsole命令)是使用IncredBuild执行解决方案的最简单和最优化(性能方面)的方法。如果您喜欢使用自定义概要文件执行构建,那么您的profile.xml应该如下所示(请注意,概要文件中不应提及跟踪器):

    (作者使用的是难以置信的构建)