bit*_*onk 17 devenv visual-studio-2017
我需要运行使用devenv.exe
(或devenv.com
就此而言)构建可视化工作室解决方案的脚本.对于visual studio 2015 %VS140COMNTOOLS%
,我可以使用一个环境变量 来查找devenv的安装位置.由于Visual Studio 2017 没有%VS150COMNTOOLS%
,因此devenv
在脚本(bat或powershell)中查找安装位置的可靠方法是什么.
Tar*_*aro 12
一种方法是使用power shell和vswhere.exe.但我有点懒于安装新工具......
我试图找到更简单的解决方案,并从注册表中找到它 - 存在注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7
,列出所有Visual Studio安装.
此链接中提到的限制之一:https: //developercommunity.visualstudio.com/content/problem/2813/cant-find-registry-entries-for-visual-studio-2017.html
如果安装了多个2017版本,那么安装的最后一个版本将在此密钥中显示其路径.
但通常只安装一个Visual Studio用于构建或使用目的.
此外,我已经从64位机器的角度编写了这个示例,我认为Wow6432Node
不会在32位机器中退出,但实际上 - 现在有多少开发人员使用32位机器?
因此,如果你没有上述限制,这里有一个简单的批处理,可以查询visual studio的安装路径:
test.bat :
@echo off
setlocal
call:vs%1 2>nul
if "%n%" == "" (
echo Visual studio is not supported.
exit /b
)
for /f "tokens=1,2*" %%a in ('reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7" /v "%n%.0" 2^>nul') do set "VSPATH=%%c"
if "%VSPATH%" == "" (
echo Visual studio %1 is not installed on this machine
exit /b
)
echo Visual studio %1 path is "%VSPATH%"
endlocal & exit /b
:vs2017
set /a "n=%n%+1"
:vs2015
set /a "n=%n%+2"
:vs2013
set /a "n=%n%+1"
:vs2012
set /a "n=%n%+1"
:vs2010
set /a "n=%n%+10"
exit /b
Run Code Online (Sandbox Code Playgroud)
可以像这样执行:
>test 2010
Visual studio 2010 path is "C:\Program Files (x86)\Microsoft Visual Studio 10.0\"
>test 2012
Visual studio 2012 path is "C:\Program Files (x86)\Microsoft Visual Studio 11.0\"
>test 2013
Visual studio 2013 path is "C:\Program Files (x86)\Microsoft Visual Studio 12.0\"
>test 2014
Visual studio is not supported.
>test 2015
Visual studio 2015 path is "C:\Program Files (x86)\Microsoft Visual Studio 14.0\"
>test 2017
Visual studio 2017 path is "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\"
Run Code Online (Sandbox Code Playgroud)
jes*_*ing 10
您可以使用vswhere.exe
或PowerShell来查找Visual Studio实例:
for /r "usebackq tokens=1* delims=: " %%i in (`vswhere.exe -latest -requires Microsoft.VisualStudio.Workload.NativeDesktop`) do (
if /i "%%i"=="installationPath" set dir=%%j
)
Run Code Online (Sandbox Code Playgroud)
和
Install-Module VSSetup -Scope CurrentUser
Get-VSSetupInstance | Select-VSSetupInstance -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64
Run Code Online (Sandbox Code Playgroud)
通过此API也可以找到特定工作负载的路径.
归档时间: |
|
查看次数: |
16643 次 |
最近记录: |