Запускать средства командной строки Visual Studio в Windows Powershell

6584
Uwe Honekamp

В cmd.exe я бы просто запустил

%VS80COMNTOOLS%\vsvars32.bat 

настроить среду для запуска инструментов командной строки Visual Studio (например, cl, link, mt и т. д.). Интересно, как я могу настроить среду для запуска этих инструментов в Powershell. Конечно, можно запускать командные файлы, используя

start-process $env:vs80comntools\vsvars32.bat 

но тогда среда исчезнет, ​​когда процесс завершится. Я уже провел несколько экспериментов с System.Diagnostics.StartProcessInfo, т.е.

$proc = start-process $env:vs80comntools\vsvars32.bat -passthru $procInfo = proc.StartInfo 

а затем получить окружающую среду, $procInfo.EnvironmentVariablesно это также не работает.

Существуют ли другие способы настройки среды в Powershell?

10

2 ответа на вопрос

5
heavyd

В PowerShell Community Extensions имеет Import-VisualStudioVarsкомандлет.

2
Jay Bazuzi

PSCX Import-VisualStudioVars- это большой скрипт, который пытается дублировать то, что vsvars32.batделает. Проблема в том, что их синхронизация требует усилий и может стать источником ошибок.

Я предпочитаю полагаться на vsvars32.bat, чтобы делать то, что он делает, и импортировать env. вары. в PowerShell. Я делаю это с Invoke-CmdScript.ps1 .

Спасибо за ответ. Я уже считал, что Import-VisualStudioVar более или менее имитирует выполнение vsvars32.bat вместо его фактического выполнения. Однако, учитывая, что vsvars32.bat достаточно стабилен для конкретной версии VS, я не думаю, что существует реальная проблема с синхронизацией результатов обоих вариантов. Тем не менее, я попробую ваше предложение. Uwe Honekamp 14 лет назад 0