Roubando livremente daqui: http://allen-mack.blogspot.com/2008/03/replace-visual-studio-command-prompt.html , consegui fazer isso funcionar. Adicionei o seguinte ao meu profile.ps1 e está tudo bem com o mundo.
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
Isso funcionou bem por anos - até o Visual Studio 2015. vcvarsall.bat não existe mais. Em vez disso, você pode usar o arquivo vsvars32.bat, que está localizado na pasta 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
As coisas mudaram mais uma vez para o Visual Studio 2017. vsvars32.bat
parece ter sido abandonado em favor de VsDevCmd.bat
. O caminho exato pode variar dependendo de qual edição do Visual Studio 2017 você está usando.
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
para ver o caminho pretendido para o seu profile.ps1, se você nunca o criouA opção mais simples é executar o prompt de comando do VS 2010 e, em seguida, iniciar o PowerShell.exe. Se você realmente deseja fazer isso de seu prompt do PowerShell "inicial", a abordagem que você mostra é o caminho a percorrer. Eu uso um script que Lee Holmes escreveu há algum tempo:
Observação: esta função estará disponível na versão baseada em módulo PowerShell Community Extensions 2.0 em breve.
fonte
Encontrei um método simples aqui : modificar o atalho.
O atalho original é mais ou menos assim:
Adicione
& powershell
antes da última citação, assim:Se você quiser torná-lo mais parecido com PS, vá para a guia Cores das propriedades do atalho e defina os valores de Vermelho, Verde e Azul para 1, 36 e 86 respectivamente.
fonte
Uma pergunta antiga, mas vale outra resposta para (a) fornecer suporte VS2013; (b) combinar o melhor de duas respostas anteriores; e (c) fornecer um wrapper de função.
Isso se baseia na técnica de @Andy (que se baseia na técnica de Allen Mack conforme Andy indicou (que por sua vez se baseia na técnica de Robert Anderson conforme Allen indicou (todos os quais tiveram uma pequena falha, conforme indicado nesta página pelo usuário conhecido apenas como "eu- - ", então eu levei isso em consideração também))).
Aqui está meu código final - observe o uso do quantificador não ganancioso na regex para lidar com qualquer igual embutido nos valores. Isso também simplifica o código: uma única correspondência em vez de uma correspondência e então dividida como no exemplo de Andy ou uma correspondência e indexof e substrings como no exemplo de "me -").
fonte
[parameter(Mandatory=$true,
...cmd /c """$targetDir\vcvarsall.bat""&set"
Keith já mencionou PowerShell Community Extensions (PSCX), com seu
Invoke-BatchFile
comando:Também percebi que o PSCX também tem uma
Import-VisualStudioVars
função:fonte
Parabéns a Andy S por sua resposta. Estou usando a solução dele há um tempo, mas tive um problema hoje. Qualquer valor com um sinal de igual é truncado no sinal de igual. Por exemplo, eu tinha:
Mas minha sessão PS relatou:
Corrigi isso modificando meu script de perfil para o seguinte:
fonte
Para alguém que ainda está lutando com isso em 2020 e no Visual Studio Code 1.41.1, um pouco fora do assunto aqui.
Usando todas as diferentes partes do código acima e da Internet, por exemplo, de https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell e com uma abordagem passo a passo consegui tenha o script abaixo funcionando.
Salvo no VSCode "settings.json" e com a extensão Code Runner instalada.
Com o Microsoft (R) C / C ++ Otimizando Compiler Versão "cl.exe" do Visual Studio 2015 / 14.0:
Com Microsoft (R) C / C ++ Optimizing Compiler versão "cl.exe" do Visual Studio 2019 / 16.4.3:
HTH
fonte
Eu gosto de passar os comandos para um shell filho assim:
Ou alternativamente
fonte