在 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 中设置环境吗?
答案1
这PowerShell 社区扩展有一个Import-VisualStudioVars
cmdlet。
答案2
PSCXImport-VisualStudioVars
是一个大型脚本,它试图复制vsvars32.bat
所做的工作。问题是保持它们同步需要付出努力,并且可能成为错误的根源。
我更喜欢依赖 vsvars32.bat 来完成它的工作,并将环境变量导入到 PowerShell 中。我这样做调用-CmdScript.ps1。
答案3
PowerShell 库中的另一个选项:posh-vs 使 Visual Studio 命令行工具在 PowerShell 中可用。支持 Visual Studio 2017 和 2015。