如何为 Visual Studio 命令行永久设置环境变量
How to permanently set Environment Variables for the Visual Studio command line
对于我的项目,我需要使用 Visual Studio 开发工具作为额外的命令行功能,例如使用 tlbimp 实用程序创建 dlls .
根据 Microsoft 文档,我需要通过调用 vsvars32.bat
.
为 Visual Studio 命令行正确配置我的环境变量
The vsvars32.bat
file sets the appropriate environment variables to enable command-line builds. (More info: https://msdn.microsoft.com/en-us//library/1700bbwd.aspx)
我的情况看起来很烦人,这些功能在我的 PowerShell 提示符下是临时可用的。每次我需要重新运行那个批处理文件。有没有什么聪明的方法可以让它们持久化?
您可以配置或修改(如果它已经存在)您的 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 更新 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"
- 等等...
现在,每次打开 Poweshell 提示时,Visual Studio 开发工具的功能都可用。
对于我的项目,我需要使用 Visual Studio 开发工具作为额外的命令行功能,例如使用 tlbimp 实用程序创建 dlls .
根据 Microsoft 文档,我需要通过调用 vsvars32.bat
.
The
vsvars32.bat
file sets the appropriate environment variables to enable command-line builds. (More info: https://msdn.microsoft.com/en-us//library/1700bbwd.aspx)
我的情况看起来很烦人,这些功能在我的 PowerShell 提示符下是临时可用的。每次我需要重新运行那个批处理文件。有没有什么聪明的方法可以让它们持久化?
您可以配置或修改(如果它已经存在)您的 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 更新 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"
- 等等...
现在,每次打开 Poweshell 提示时,Visual Studio 开发工具的功能都可用。