Обильно воровав отсюда: http://allen-mack.blogspot.com/2008/03/replace-visual-studio-command-prompt.html , я смог заставить это работать. Я добавил в свой profile.ps1 следующее, и с миром все хорошо.
pushd 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'
cmd /c "vcvarsall.bat&set" |
foreach {
if ($_ -match "=") {
$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"
}
}
popd
write-host "`nVisual Studio 2010 Command Prompt variables set." -ForegroundColor Yellow
Это хорошо работало в течение многих лет - до Visual Studio 2015. vcvarsall.bat больше не существует. Вместо этого вы можете использовать файл vsvars32.bat, который находится в папке Common7 \ Tools.
pushd 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools'
cmd /c "vsvars32.bat&set" |
foreach {
if ($_ -match "=") {
$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"
}
}
popd
write-host "`nVisual Studio 2015 Command Prompt variables set." -ForegroundColor Yellow
В Visual Studio 2017 все снова изменилось. vsvars32.bat
Похоже, было отказано в пользу VsDevCmd.bat
. Точный путь может отличаться в зависимости от того, какой выпуск Visual Studio 2017 вы используете.
pushd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools"
cmd /c "VsDevCmd.bat&set" |
foreach {
if ($_ -match "=") {
$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"
}
}
popd
Write-Host "`nVisual Studio 2017 Command Prompt variables set." -ForegroundColor Yellow
echo $Profile
чтобы увидеть предполагаемый путь для вашего profile.ps1, если вы никогда его не создавалиСамый простой вариант - запустить командную строку VS 2010, а затем запустить PowerShell.exe. Если вы действительно хотите сделать это из «домашней» командной строки PowerShell, то показанный вами подход - лучший вариант. Я использую сценарий, который написал недавно Ли Холмс:
Примечание: эта функция будет доступна в модульном выпуске PowerShell Community Extensions 2.0, который скоро появится.
источник
Я нашел простой способ здесь : изменить ярлык.
Исходный ярлык выглядит примерно так:
Добавьте
& powershell
перед последней цитатой, например:Если вы хотите сделать его более похожим на PS, перейдите на вкладку « Цвета » в свойствах ярлыка и установите для красного, зеленого и синего значения 1, 36 и 86 соответственно.
источник
Старый вопрос, но на него стоит еще один ответ: (а) обеспечить поддержку VS2013; (б) объединить лучшее из двух предыдущих ответов; и (c) предоставить оболочку функции.
Это основано на методе @ Andy (который основан на технике Аллена Мака, как указал Энди (который, в свою очередь, основан на технике Роберта Андерсона, как указал Аллен) (все из которых имели небольшой сбой, как указано на этой странице пользователем, известным только как «я- - ", и это я тоже учел))).
Вот мой последний код - обратите внимание на использование нежадного квантификатора в регулярном выражении для обработки любых возможных встроенных равенств в значениях. Это также упрощает код: одиночное совпадение вместо совпадения, которое затем разделяется, как в примере Энди, или совпадение, затем indexof и подстроки, как в примере "me -").
источник
[parameter(Mandatory=$true,
...cmd /c """$targetDir\vcvarsall.bat""&set"
Кейт уже упоминал о расширениях сообщества PowerShell (PSCX) со своей
Invoke-BatchFile
командой:Я также заметил, что PSCX также имеет
Import-VisualStudioVars
функцию:источник
Престижность Энди С. за его ответ. Некоторое время я использовал его решение, но сегодня столкнулся с проблемой. Любое значение, имеющее знак равенства, обрезается до знака равенства. Например, у меня было:
Но мой сеанс PS сообщил:
Я исправил это, изменив сценарий своего профиля на следующее:
источник
Для тех, кто все еще борется с этим в 2020 году и Visual Studio Code 1.41.1, поэтому здесь немного не по теме.
Используя все разные части кода сверху и из Интернета, например, из https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell и с пошаговым подходом, мне удалось работайте с приведенным ниже сценарием.
Сохраняется в VSCode "settings.json" с установленным расширением Code Runner.
С версией оптимизирующего компилятора Microsoft (R) C / C ++ "cl.exe" из Visual Studio 2015 / 14.0:
С версией оптимизирующего компилятора Microsoft (R) C / C ++ "cl.exe" из Visual Studio 2019 / 16.4.3:
НТН
источник
Мне нравится передавать команды в дочернюю оболочку следующим образом:
Или альтернативно
источник