SureshMunna Ответов: 1

Как запустить 2 решения с помощью пакетного файла в соответствующем режиме (release или debug)


я создал один пакетный файл для сборки 2 решений и хранения выходных exe-файлов в соответствующем выходном каталоге как для режима выпуска, так и для режима отладки. Он работает нормально, но когда я выбираю один из этих режимов, пакетный файл создает выходной каталог для обоих режимов.

Что я уже пробовал:

set SOLUTION_PATH="%~dp0\..\..\VSSolution\Customer2013.sln"
set SOLUTION_PATH1="%~dp0\..\..\..\..\Customer1\Customer1.sln"

set mode=%1
echo %REL_PATH%
if /I "%mode%" == "release" (
set value="Release"
set filter="*64.dll"
) else (
set value="Debug"
set filter="*64d.dll"
)
echo "Build Mode set as %value%"

echo "Starting Debug Build for Customer solution"
devenv %SOLUTION_PATH% /rebuild Debug 
echo "Starting Debug Build for Customer1 solution"
devenv %SOLUTION_PATH1% /rebuild Debug

echo "Starting Release Build for Custome solution"
devenv %SOLUTION_PATH% /rebuild Release 
echo "Starting Release Build for Customer1  solution"
devenv %SOLUTION_PATH1% /rebuild Release
echo "Build is completed" 

Richard MacCutchan

Посмотрите на свой код, он строит оба решения для обоих типов. Вам нужно добавить еще несколько тестов вокруг ваших команд devenv.

SureshMunna

может у PLZ предоставить мне выходной код

SureshMunna

Пакетный файл должен построить оба решения в соответствии с режимом

SureshMunna

Когда я выбираю любой из этих режимов, он выполняет оба решения для обоих типов. Мне нужно выполнить эти решения в соответствии с выбранным типом

Richard MacCutchan

Посмотри на код. Вы проверяете выбор сделанный пользователем но потом в конце концов у вас его нет if операторы определяют, какие сборки следует выполнить, поэтому вы запускаете их все.

SureshMunna

set SOLUTIONS_PATH="%~dp0\..\..\VSSolution\Customer2013.sln"
set Solutions PATH1="%~dp0\..\..\..\..\Customer1\Customer1.sln"

установить режим=%1
echo %REL_PATH%
if /I "%mode%" == "release" (
заданное значение="Release"
установить фильтр="*64.dll"
) еще (
заданное значение="Debug"
установить фильтр="*64d.dll"
)
Эхо "режим построения установить в качестве %величины%"
SET str1=debug
Набор стр2=релиз

если %str1%==%значение%
echo "запуск отладочной сборки для клиентского решения"
devenv %SOLUTION_PATH% /rebuild Debug
echo "запуск отладочной сборки для решения Customer1"
devenv %SOLUTION_PATH1% /rebuild Debug
еще
echo "запуск сборки релиза для решения Custome"
devenv %SOLUTION_PATH% /rebuild Release
echo "запуск сборки релиза для решения Customer1"
devenv %SOLUTION_PATH1% /rebuild Release
Эхо "сборка завершена"

1 Ответов

Рейтинг:
12

_Asif_

Попробовать это,

set SOLUTION_PATH="%~dp0\..\..\VSSolution\Customer2013.sln"
set SOLUTION_PATH1="%~dp0\..\..\..\..\Customer1\Customer1.sln"

set mode=%1
echo %REL_PATH%
if /I "%mode%" == "release" (
set value="Release"
set filter="*64.dll"
) else (
set value="Debug"
set filter="*64d.dll"
)
echo "Build Mode set as %value%"

echo "Starting Debug Build for Customer solution"
devenv %SOLUTION_PATH% /rebuild %value%
echo "Starting Debug Build for Customer1 solution"
devenv %SOLUTION_PATH1% /rebuild %value%
echo "Build is completed"


SureshMunna

как скопировать источник формы вложенной папки в пункт назначения.
xcopy /s /i /y %~dp0\..\windows\Resources %~dp0\..\..\build\windows\x64\%value%
Мне нужно скопировать всю папку ресурсов в x64, но вышеупомянутый xcopy копирует внутренние файлы ресурсов..вместо всей папки.

_Asif_

Вы должны попробовать это
xcopy /s /i /y %~dp0\..\windows\Resources %~dp0\..\..\build\windows\x64\%value%\Resources