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

10

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

Уве Хонекамп
источник

Ответы:

2

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

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

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

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

IT-Рафа
источник