如何在Visual Studio命令行中永久设置环境变量

4
对于我的项目,我需要使用Visual Studio开发工具作为额外的命令行功能,例如使用tlbimp实用程序创建dll。
根据Microsoft文档,我需要正确配置Visual Studio命令行的环境变量,通过调用vsvars32.bat文件来完成。
vsvars32.bat文件设置适当的环境变量以启用命令行构建。(更多信息:https://msdn.microsoft.com/en-us//library/1700bbwd.aspx)
在我的情况下看起来有点麻烦的是,这些功能在我的PowerShell提示符中是临时可用的。每次我都需要重新运行批处理文件。是否有一种聪明的方法使它们持久化?

3
你可以编辑 vsvars32.bat 文件,将每个 set 命令替换为 setx。请注意,它的语法略有不同。 - Stephan
这个问题十年来一直没有一个好的解决方案。https://dev59.com/oU_Sa4cB1Zd3GeqP9iOc - Константин Ван
1个回答

3

您可以配置或修改(如果已存在)PowerShell配置文件,以便自动调用vsvars32.bat批处理文件:

function Invoke-Batchfile ($file) {
    $cmd = "`"$file`" & set"
    cmd /c $cmd | Foreach-Object {
    $p, $v = $_.split('=')
        Set-Item -path env:$p -value $v
    }
}

Invoke-Batchfile "$env:VSCOMNTOOLS\vsvars32.bat"

请注意,您需要先定义一个环境变量,指向您的Visual Studio安装路径,根据使用的版本进行设置:
  • 对于Visual Studio 15 Update 3(v.14.0):

$env:VSCOMNTOOLS = "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools"

  • 对于Visual Studio 13.(v.12.0):

$env:VSCOMNTOOLS = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools"

  • 等等...
现在,每次打开PowerShell提示符时,Visual Studio开发工具的功能都将可用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接