Je pourrais lire le registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0
. Cependant, cela ne me donne aucune information sur son édition - Professional/Ultimate ou autre
Comment puis-je obtenir les informations avec un programme (de préférence python)?
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 menu Aide sélectionnez le menu Présentation de Microsoft Visual Studio -> Obtenir la version de Visual Studio
si quelqu'un a besoin d'un exemple en C #, 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);
}
Ce n'est pas très subtil, mais il y a un dossier dans l'emplacement d'installation qui porte le nom de la version installée.
par exemple j'ai:
C:\Programmes Visual Studio 9.0\Microsoft Visual Studio 2008 Standard Edition - ENU
et
C:\Fichiers de programme\Visual Studio 10.0\Microsoft Visual Studio 2010 Professional - ENU
Vous pouvez trouver l'emplacement d'installation à partir des clés de registre que vous avez énumérées ci-dessus.
Alternativement, cela sera dans le registre à plusieurs endroits, par exemple:
HKEY_LOCAL_MACHINE\LOGICIEL\Microsoft\VisualStudio\9.0\Setup\Microsoft Visual Studio 2008 Standard Edition - ENU
La chaîne contient un grand nombre de valeurs et de clés. Vous pouvez les trouver en recherchant "Microsoft Visual Studio 2010" dans la fonction Regedit> Modifier> Rechercher.
Vous devez simplement choisir celui que vous voulez et faire un peu de correspondance de chaîne.
Si vous tombez sur cette question, voici la réponse si vous utilisez le langage C++: Vous pouvez vérifier dans votre code cpp la version vs, comme dans l'exemple ci-dessous, qui renvoie à une bibliothèque basée sur la version vs 2015 ou supérieure:
#if (_MSC_VER > 1800)
#pragma comment (lib, "legacy_stdio_definitions.lib")
#endif
Cette opération est effectuée au moment de la liaison et sans aucun coût d’exécution supplémentaire.
Toutes les informations de ce fil sont maintenant obsolètes depuis la publication récente de vswhere . Téléchargez-le et utilisez-le.