如何检查以编程方式安装的 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 中是不是安装了应用程序?

如何以编程方式检查系统上是不是安装了 SQL Server Management Studio?

如何以编程方式检查 Photoshop 画笔是不是存在

如何以编程方式检查和打开现有应用程序 - Swift 4

如何以编程方式启动 Visual Studio 并将其发送到特定文件/行?