Подтвердить что ты не робот

Как я могу проверить, какая версия/версия Visual Studio установлена ​​программно?

Я мог бы прочитать реестр HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0. Однако он не дает мне никакой информации о его выпуске - Professional/Ultimate или что-то еще.

Как я могу получить информацию программно (желательно python)?

enter image description here

4b9b3361

Ответ 2

В Visual Studio вкладка "Справка" → "О Microsoft Visual Studio" должна предоставить вам необходимую информацию.

Ответ 3

Откройте установленное программное обеспечение визуальной студии и нажмите меню Справка, выберите "О Microsoft Visual Studio" → Получить визуальную версию студии

Ответ 4

Если кому-то нужен пример С#, то:

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);
}

Ответ 5

Не очень тонкий, но есть папка в месте установки, в которой указано имя установленной версии.

например, у меня есть:

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

и

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

Вы можете найти место установки из перечисленных выше разделов реестра.

В качестве альтернативы это будет в реестре в нескольких местах, например:

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

Есть множество значений и ключей со строкой, вы можете найти их, ища "Microsoft Visual Studio 2010" в функции Regedit > Edit > Find.

Вам просто нужно выбрать тот, который вы хотите, и немного подстроить строку.

Ответ 6

Для тех, кто наткнулся на этот вопрос, вот ответ, если вы делаете С++: Вы можете проверить свой код cpp для версии vs, как приведенный ниже пример, который ссылается на библиотеку на основе версии vs 2015 года или выше:

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

Это делается во время соединения и без дополнительных затрат времени выполнения.

Ответ 7

Вся информация в этом потоке теперь устарела с недавним выпуском vswhere. Загрузите это и используйте его.