Comment puis-je vérifier quelle version/édition de Visual Studio est installée par programmation?

j'ai pu lire de registre HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudio.0. Cependant, il ne me donne aucune information sur l'édition de it - Professional/Ultimate ou autre.

Comment puis-je obtenir l'information avec programmatically (de préférence python)?

enter image description here

28
demandé sur prosseek 2011-02-23 13:04:46

7 réponses

dans Visual Studio, L'onglet 'Aide'-> 'À propos de Microsoft Visual Studio' devrait vous donner les informations souhaitées.

20
répondu AGuyCalledGerald 2011-02-23 10:15:05

ouvrez le logiciel visual studio installé et cliquez sur le Aide menu sélectionnez le Propos de Microsoft Visual studio--> Obtenir la Version de visual studio

6
répondu M.Dinesh Babu 2015-04-22 06:25:10

si quelqu'un a besoin de C# par exemple, alors:

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);
}
3
répondu Artiom 2017-03-07 06:50:09

Son pas très subtil, mais il y a un dossier dans l'emplacement d'installation qui transporte la version installée nom.

par exemple j'ai:

C:\Program Fichiers\Microsoft Visual Studio 9.0\Microsoft Visual Studio Édition standard 2008-ENU

et

C:\Program Fichiers\Microsoft Visual Studio 10.0\Microsoft Visual Studio 2010 Professionnel-ENU

Vous pouvez trouver l'emplacement d'installation de les clés de registre que vous avez énumérés ci-dessus.

Sinon ce sera dans le registre à un certain nombre d'endroits, par exemple:

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

il y a des tas de valeurs et de clés avec la chaîne de caractères, vous pouvez les trouver en cherchant "Microsoft Visual Studio 2010" dans la fonction de recherche de Regedit>Edit>Find.

Vous auriez juste besoin de choisir celui que vous voulez et faire un peu de correspondance de chaîne.

2
répondu Jon Egerton 2015-04-22 06:24:44

Pour quelqu'un d'achoppement sur cette question, voici la réponse si vous faites C++: Vous pouvez vérifier dans votre code cpp pour la version vs comme l'exemple ci-dessous qui fait le lien avec une bibliothèque basée sur la version vs étant 2015 ou plus:

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

Ceci est fait à l'heure du lien et aucun coût supplémentaire d'exécution.

2
répondu rezeli 2016-02-28 03:51:16

toutes les informations de ce thread sont maintenant périmées avec la récente sortie de vswhere. Télécharger et à utiliser.

0
répondu johnwbyrd 2017-10-07 00:09:54