如何检查以编程方式安装的 Visual Studio 的版本/版本?
Posted
技术标签:
【中文标题】如何检查以编程方式安装的 Visual Studio 的版本/版本?【英文标题】:How can I check what version/edition of Visual Studio is installed programmatically? 【发布时间】:2011-07-02 15:24:52 【问题描述】:我可以读取注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0
。
但是,它没有给我任何关于它的版本的信息——专业/终极或其他。
如何以编程方式(最好是 python)获取信息?
【问题讨论】:
【参考方案1】:在 Visual Studio 中,选项卡“帮助”->“关于 Microsoft Visual Studio”应该会为您提供所需的信息。
【讨论】:
感谢您的回答,但我忘了提到“以编程方式”。【参考方案2】:它不是很微妙,但是安装位置中有一个文件夹,其中包含已安装的版本名称。
例如我有:
C:\Program Files\Microsoft Visual Studio 9.0\Microsoft Visual Studio 2008 标准版-ENU
和
C:\Program Files\Microsoft Visual Studio 10.0\Microsoft Visual Studio 2010 专业 - 英语
您可以从上面列出的注册表项中找到安装位置。
或者,这将在许多地方的注册表中,例如:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Setup\Microsoft Visual Studio 2008 标准版-ENU
里面有很多值和键,你可以在Regedit>Edit>Find函数中查找“Microsoft Visual Studio 2010”来找到它们。
您只需要选择您想要的并进行一些字符串匹配。
【讨论】:
【参考方案3】:如果有人需要 C# 示例,那么:
var registry = Registry.ClassesRoot;
var subKeyNames = registry.GetSubKeyNames();
var regex = new Regex(@"^VisualStudio\.edmx\.(\d+)\.(\d+)$");
foreach (var subKeyName in subKeyNames)
var match = regex.Match(subKeyName);
if (match.Success)
Console.WriteLine("V" + match.Groups[1].Value + "." + match.Groups[2].Value);
【讨论】:
这仅在为所有已安装的 Visual Studio 版本安装了实体数据模型 (EDMX) 时才有效。【参考方案4】:打开已安装的visual studio软件,点击帮助菜单选择About Microsoft Visual studio-->Get the visual studio Version
【讨论】:
【参考方案5】:对于遇到此问题的任何人,如果您正在使用 C++,以下是答案: 您可以检查您的 vs 版本的 cpp 代码,如下例所示,该示例链接到基于 vs 版本为 2015 或更高版本的库:
#if (_MSC_VER > 1800)
#pragma comment (lib, "legacy_stdio_definitions.lib")
#endif
这是在链接时完成的,没有额外的运行时成本。
【讨论】:
【参考方案6】:此线程中的所有信息现在与最近发布的vswhere 已过时。下载并使用它。
【讨论】:
评论属实。如果您需要了解主要问题中的版本和版本,-legacy 标志将无济于事。我已经安装了 2015 和 2107。但是 vswhere 显示我有 10.0、11.0、12.0、14.0(2015) 和 2017。所以对于旧工作室来说几乎没用。 有趣的是,我正确检测到只有 VS2015 和 vswhere。您之前的机器上是否安装过旧的 IDE? 我已经安装了所有的 MS Management Studios。他们有来自 VS 的外壳。这可能是原因【参考方案7】:在cmd中运行路径 C:\Program Files (x86)\Microsoft Visual Studio\Installer>vswhere.exe
【讨论】:
如果我安装了多个版本的 VisualStudio(2015、2017、2019),有没有办法从命令行获取它们?【参考方案8】:将此代码放在您的 C++ 项目中的某个位置:
#ifdef _DEBUG
TCHAR version[50];
sprintf(&version[0], "Version = %d", _MSC_VER);
MessageBox(NULL, (LPCTSTR)szMsg, "Visual Studio", MB_OK | MB_ICONINFORMATION);
#endif
请注意,_MSC_VER
符号是 Microsoft 特定的。 Here you can find a list 的 Visual Studio 版本,每个版本的值为 _MSC_VER
。
【讨论】:
【参考方案9】:这个问题的更新答案如下:
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property productId
解决到 2019
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property catalog_productLineVersion
解析为Microsoft.VisualStudio.Product.Professional
【讨论】:
【参考方案10】:您可以通过运行以下命令获取VS产品版本。
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion
【讨论】:
以上是关于如何检查以编程方式安装的 Visual Studio 的版本/版本?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 c# 检查 OpenOffice 是不是以编程方式安装
如何以编程方式检查 Android 中是不是安装了应用程序?