Я мог бы прочитать реестр HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0
.
Однако он не дает мне никакой информации о его выпуске - Professional/Ultimate или что-то еще.
Как я могу получить информацию программно (желательно python)?
Я мог бы прочитать реестр HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0
.
Однако он не дает мне никакой информации о его выпуске - Professional/Ultimate или что-то еще.
Как я могу получить информацию программно (желательно python)?
HOWTO: обнаружение установленных версий, пакетов или пакетов обновления Visual Studio
В Visual Studio вкладка "Справка" → "О Microsoft Visual Studio" должна предоставить вам необходимую информацию.
Откройте установленное программное обеспечение визуальной студии и нажмите меню Справка, выберите "О Microsoft Visual Studio" → Получить визуальную версию студии
Если кому-то нужен пример С#, то:
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);
}
Не очень тонкий, но есть папка в месте установки, в которой указано имя установленной версии.
например, у меня есть:
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.
Вам просто нужно выбрать тот, который вы хотите, и немного подстроить строку.
Для тех, кто наткнулся на этот вопрос, вот ответ, если вы делаете С++: Вы можете проверить свой код cpp для версии vs, как приведенный ниже пример, который ссылается на библиотеку на основе версии vs 2015 года или выше:
#if (_MSC_VER > 1800)
#pragma comment (lib, "legacy_stdio_definitions.lib")
#endif
Это делается во время соединения и без дополнительных затрат времени выполнения.
Вся информация в этом потоке теперь устарела с недавним выпуском vswhere. Загрузите это и используйте его.