Разница между VsDevCmd.bat & vcvarsall.bat в VS2012
Какая разница между:
- VsDevCmd.bat(команда разработчика для VS2012)
- vcvarsall.bat(VS2012 x86\x64\ARM Native\Cross Tools Command Prompt)
У меня довольно хорошее понимание vcvarsall.bat, поскольку оно было частью Visual Studio для многих предыдущих версий. vcvarsall.bat был в основном моим инструментом goto для msbuild, даже при создании .NET-проектов, хотя это технически часть Visual С++.
То, что я не очень хорошо понимаю, это VsDevCmd.bat. Это похоже на VS2012, и я не уверен, что это за цель. Я заметил это не в папке Visual С++, например, vcvarsall.bat, но в папке "Инструменты Visual Studio". Должен ли я делать мои .NET msbuilds в этом инструменте сейчас? Если да, то как настроить одинаковые типы x64\x86\ARM по умолчанию, например vcvarsall.bat.
Ответы
Ответ 1
Из моего понимания и просмотра различных командных скриптов в VS2012:
vcvarsall.bat, вызываемый с помощью x86 (или просто vcvarsall.bat без опции, по умолчанию для x86) идентичен VsDevCmd.bat. Пакетный файл, который vcvarsall.bat вызывает при передаче с параметром x86, -
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat
Этот файл идентичен файлу VsDevCmd.bat, который находится в
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat
который вызывает приглашение командной строки разработчика при открытии из меню "Пуск".
Таким образом, для большего контроля на платформе лучше вызвать vcvarsall.bat с соответствующей переданной опцией: x86 или amd64 или arm или x86_amd64 или x86_arm.