это потому, что пакетные файлы, которые он запускает, используют Set
для установки переменных окружения (C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat
что запускается при запуске vcvarsall x64
).
но Set
задает переменные только для текущего сеанса командной строки. Вам нужно использовать Setx
, чтобы иметь его "палку" между сеансами командной строки.
для получения дополнительной информации, возможно, проверить эти другие вопросы Су и ответы:
редактировать после комментария:
" но команды set были в скрипте по умолчанию"
VCVarsAll предназначен для запуска, чтобы настроить среду для одной сборки / действия, которое вы собираетесь сделать, а не установить их на постоянной основе.
Visual Studio устанавливает определенные записи "командной строки" для доступа к средствам (по вашей ссылке: "...затем выберите одну из командных строк native-tool или cross-tool."), и эти специальные ярлыки командной строки запускают пакетный файл/, чтобы убедиться, что при использовании этих ярлыков все настроено правильно.
вы можете повторить эти ярлыки с вашим собственным...
создать новый ярлык на cmd /k "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64
, который запустит пакетный файл (используя x64 в качестве параметра среды), а затем сохранит окно командной строки открытым.
затем используйте этот ярлык, чтобы открыть командную строку, когда вы хотите использовать инструменты.