Запустите процесс msbuild параллельно, используя FOR l oop в командном файле - PullRequest
0 голосов
/ 25 марта 2020

Я хочу параллельно запустить msbuild, используя для l oop. У меня есть ниже код, который строит последовательно, где fo l 1 1004 * начинает строить в последовательности. Я хочу сразу начать сборку FOR l oop для всех игр и дождаться завершения всего процесса.

@echo off
SETLOCAL

SET CONFIG_DIR=_config
SET /P BUILD_TYPE=<%CONFIG_DIR%\BUILD_TYPE.txt
SET CURRENT_DIR=%cd%
SET TIME_STAMP=%date:~7,2%_%date:~4,2%_%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%

SET /P MSBUILD=<%CONFIG_DIR%\BUILD_EXECUTABLE.txt

SET GAMES_SLN_DIR=Runtime\core\Games
SET GAMES_PROPS=games.properties

REM Remove log files
del /s /q "%GAMES_SLN_DIR%\MSBuild_*.log"

REM Build Games
FOR /F "tokens=1* delims==" %%g IN (%CONFIG_DIR%\%GAMES_PROPS%) DO (
    cd %GAMES_SLN_DIR%
    echo Building Game %%g
    call %MSBUILD% %%g.sln /t:Clean /p:Configuration="%BUILD_TYPE%"
    call %MSBUILD% %%g.sln /p:Configuration="%BUILD_TYPE%" /p:Platform="x64" /l:FileLogger,Microsoft.Build.Engine;logfile="MSBuild_%%g_%BUILD_TYPE%_%TIME_STAMP%.log"
)

cd %CURRENT_DIR%

echo DONE

if "%BUILD_ALL%"=="" (
    pause
)
...