Запустіть інструменти командного рядка 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.