Как написать пакет сборки script, который запускает vcvars32.bat, а затем продолжает сборку?

Я хочу написать простой пакет script, который загружает среду сборки Visual Studio с помощью vcvars32.bat, а затем продолжит сборку, используя vcbuild. Однако мой script не будет выполняться после вызова vcvars32.bat. Последним выходом я получаю:

Setting environment for using Microsoft Visual Studio 2008 x86 tools.

Как вы можете видеть, я использую Visual Studio 2008. Вот моя самая простая партия script:

@echo off
"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
vcbuild

Ответы

Ответ 1

Вы должны использовать call в своей партии script, или завершение vcvars32.bat завершает вашу собственную партию script. Поэтому ваш script должен быть:

@echo off
call "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
vcbuild

Ответ 2

Вы также захотите проверить, что script еще не запущен или вы исчерпаете память, если вы снова и снова вызываете ваш script в той же консоли.

IF '%VSINSTALLDIR%' NOT EQU '' THEN EXIT 0

Ответ 3

Точный путь к файлам программ зависит от наличия у вас 32- или 64-разрядной ОС и где вы установили Visual Studio. Используйте переменную окружения VS100COMNTOOLS, которую Visual Studio устанавливает во время установки, чтобы решить эту проблему в целом.

call "%VS100COMNTOOLS%\..\..\VC\bin\vcvars32.bat"
...

Обратите внимание, что каждая версия Visual Studio имеет определенную переменную среды на основе ее базового номера версии.

Visual Studio 2005    VS80COMNTOOLS
Visual Studio 2008    VS90COMNTOOLS
Visual Studio 2010    VS100COMNTOOLS
Visual Studio 2012    VS110COMNTOOLS
Visual Studio 2013    VS120COMNTOOLS

Вы получаете идею.