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)?
7 réponses
dans Visual Studio, L'onglet 'Aide'-> 'À propos de Microsoft Visual Studio' devrait vous donner les informations souhaitées.
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
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);
}
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.
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.