在将所有命令行操作迁移到PowerShell的严重意图中,我想避免使用旧式命令控制台进行任何操作。但是,Visual Studio命令提示符具有在默认命令提示符中找不到的各种环境变量和路径设置。如何使用相同的设置创建“Visual Studio PowerShell”?
您可以使用例如this script来导入Visual Studio命令提示符环境,请参阅脚本文档注释中的示例,例如:对于Visual Studio 2010:
Invoke-Environment '"%VS100COMNTOOLS%\vsvars32.bat"'
在PowerShell会话开始时(从您的配置文件或手动)完成此操作后,您将在此PowerShell会话中获得您要求的内容。
或者您可以使用Keith Hill在this answer提供的解决方案。
PowerConsole已被纳入NuGet http://nuget.codeplex.com/。您可以在Visual Studio和包管理系统中获得PowerShell。
我所做的是创建一个简单的cmd批处理命令脚本,如下所示:
call "%VS80COMNTOOLS%vsvars32.bat"
powershell
然后我创建一个通过cmd调用它的快捷方式。快捷方式目标如下所示:
%windir%\System32\cmd.exe /k "SetupPSBuildEnvironment.cmd"
如果您希望控制台看起来像powershell控制台,只需在快捷方式属性中修改您喜欢的布局。
我使用这个脚本,我称之为Initialize-VisualStudio.ps1,我在我的配置文件中用点源调用它,在我的实际会话中设置环境变量需要它:
param([switch]$ArquitectureX86)
if($ArquitectureX86)
{ $arq= "x86"}
else
{ $arq="x64"}
pushd 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'
cmd /c "vcvarsall.bat $arq&set" |
foreach {
if ($_ -match "=") {
$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])";
}
}
popd