【问题标题】:How can I check what version/edition of Visual Studio is installed programmatically?如何检查以编程方式安装的 Visual Studio 的版本/版本?
【发布时间】:2011-07-02 15:24:52
【问题描述】:

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

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

【问题讨论】:

    标签: visual-studio registry


    【解决方案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
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2012-08-28
                • 1970-01-01
                • 2011-08-22
                • 2014-02-14
                • 2013-01-05
                • 1970-01-01
                • 2017-06-23
                相关资源
                最近更新 更多