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

В 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?

3 ответа

Решение

Расширения сообщества PowerShell имеют Import-VisualStudioVars Командлет.

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

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

Еще один вариант из галереи PowerShell: posh-vs Делает инструменты командной строки Visual Studio доступными в PowerShell. Поддерживает Visual Studio 2017 и 2015.

Другие вопросы по тегам