如何以编程方式检查安装的 Visual Studio 版本?

发布于 2024-10-18 23:05:24 字数 220 浏览 4 评论 0原文

我可以读取注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0。 但是,它没有给我任何有关其版本的信息 - 专业版/终极版或其他版本。

如何以编程方式(最好是Python)获取信息?

在此处输入图像描述

I could read registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0.
However, it doesn't give me any information about the edition of it - Professional/Ultimate or whatever.

How can I get the information with programmatically (preferably python)?

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

π浅易 2024-10-25 23:05:25

如果有人需要 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);
}

if somebody needs C# example then:

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);
}
入画浅相思 2024-10-25 23:05:25

在cmd中运行路径
C:\Program Files (x86)\Microsoft Visual Studio\Installer>vswhere.exe

Run the path in cmd
C:\Program Files (x86)\Microsoft Visual Studio\Installer>vswhere.exe

帅气尐潴 2024-10-25 23:05:25

对于任何遇到这个问题的人,如果您正在使用 C++,这里是答案:
您可以检查 vs 版本的 cpp 代码,如下例所示,该示例链接基于 2015 或更高版本的 vs 版本的库:

#if (_MSC_VER > 1800)
#pragma comment (lib, "legacy_stdio_definitions.lib")
#endif

这是在链接时完成的,没有额外的运行时成本。

For anyone stumbling on this question, here is the answer if you are doing C++:
You can check in your cpp code for vs version like the example bellow which links against a library based on vs version being 2015 or higher:

#if (_MSC_VER > 1800)
#pragma comment (lib, "legacy_stdio_definitions.lib")
#endif

This is done at link time and no extra run-time cost.

夜巴黎 2024-10-25 23:05:25

它不是很微妙,但安装位置中有一个文件夹,其中包含已安装的版本名称。

例如我有:

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 专业 - ENU

您可以从上面列出的注册表项中找到安装位置。

或者,这将位于注册表中的多个位置,例如:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Setup\Microsoft
Visual Studio 2008 标准版 - 英文

有大量带有字符串的值和键,您可以通过在 Regedit>Edit>Find 功能中查找“Microsoft Visual Studio 2010”来找到它们。

您只需要选择您想要的并进行一些字符串匹配即可。

Its not very subtle, but there is a folder in the install location that carries the installed version name.

eg I've got:

C:\Program Files\Microsoft Visual Studio 9.0\Microsoft Visual Studio
2008 Standard Edition - ENU

and

C:\Program Files\Microsoft Visual Studio 10.0\Microsoft Visual Studio
2010 Professional - ENU

You could find the install location from the registry keys you listed above.

Alternatively this will be in the registry at a number of places, eg:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Setup\Microsoft
Visual Studio 2008 Standard Edition - ENU

There are loads of values and keys with the string in, you can find them by looking for "Microsoft Visual Studio 2010" in the Regedit>Edit>Find function.

You'd just need to pick the one you want and do a little bit of string matching.

秋风の叶未落 2024-10-25 23:05:25

此问题的更新答案如下:

"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

An updated answer to this question would be the following :

"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property productId

Resolves to 2019

"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property catalog_productLineVersion

Resolves to Microsoft.VisualStudio.Product.Professional

烟花易冷人易散 2024-10-25 23:05:25

此线程中的所有信息现已过时,因为最近发布了 vswhere。下载并使用它。

All the information in this thread is now out of date with the recent release of vswhere. Download that and use it.

能否归途做我良人 2024-10-25 23:05:25

将此代码放在 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 特定的。 在这里您可以找到列表 Visual Studio 版本的数量,每个版本的值为 _MSC_VER

Put this code somewhere in your C++ project:

#ifdef _DEBUG
TCHAR version[50];
sprintf(&version[0], "Version = %d", _MSC_VER);
MessageBox(NULL, (LPCTSTR)szMsg, "Visual Studio", MB_OK | MB_ICONINFORMATION);
#endif

Note that _MSC_VER symbol is Microsoft specific. Here you can find a list of Visual Studio versions with the value for _MSC_VER for each version.

日记撕了你也走了 2024-10-25 23:05:24

在 Visual Studio 中,选项卡“帮助”-> “关于 Microsoft Visual Studio”应该会为您提供所需的信息。

In Visual Studio, the Tab 'Help'-> 'About Microsoft Visual Studio' should give you the desired infos.

醉殇 2024-10-25 23:05:24

您可以通过运行以下命令获取VS产品版本。

"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion

You can get the VS product version by running the following command.

"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion
花想c 2024-10-25 23:05:24

打开安装好的Visual Studio软件,点击帮助菜单选择关于Microsoft Visual studio-->获取视觉工作室版本

Open the installed visual studio software and click the Help menu select the About Microsoft Visual studio--> Get the visual studio Version

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文