Как создать простой сценарий сборки для Visual Studio из командной строки?
У меня много Visual Studio Project Solutions в нескольких каталогах (все с расширением .sln), и я хочу написать простой пакетный скрипт, который будет автоматически строить все решения, перечисленные в пакетном файле.
Я могу вручную построить решение, запустивVisual Studio Command Prompt
(это просто экземпляр командной строки с выполнением следующей команды
"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
После чего я затем строю проект, вызывая:
devenv "path\to\solutionFile\projectSolution1.sln" /build Debug
Это создаст проект (при условии, что в проекте нет ошибок), и я ополаскиваю и повторяю для каждого проекта, который я хочу построить.
тем не мение когда у меня есть следующее в командном файле под названиемbuild.bat
:
"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
echo "Starting Build for all Projects with proposed changes"
echo .
devenv "path\to\solutionFile\projectSolution2.sln" /build Debug
devenv "another\path\to\solutionFile\projectSolution3.sln" /build Debug
devenv "yet\another\path\to\solutionFile\projectSolution4.sln" /build Debug
echo "All builds completed."
pause
Пакетный скрипт выполняет только первую строкуи ждет, пока я наберуexit
перед выполнением остальных. Мое понимание этого основано на исследовании, которое я провел над пакетными файлами, и все вопросы StackOverflow таковы:cmd
на самом деле вызывает другой экземпляр себя, который выполняетvcvarsall.bat
настроить среду сборки.
Это не будет работать как печататьexit
убивает этот случай сdevenv
установить и команды после этого не могут выполняться какdevenv
не является распознанной командой (поскольку экспортированный путь больше не будет существовать)
КорочеКак этого добиться (передача остальных команд экземпляру cmd с помощьюdevenv
определяется) в одном пакетном файле? Я понимаю, что это не надежный способ (и есть много инструментов, которые делают это) для вызова сборок, но я просто надеюсь иметь один пакетный скрипт для автоматизации ручной работы по индивидуальному вызову этих проектов.