Vous pouvez utiliser ce qui suit pour obtenir où le registre pense qu'il est installé:
(string)Registry.LocalMachine.GetValue(@"SOFTWARE\MyApplication\AppPath",
"Installed", null);
Ou vous pouvez utiliser ce qui suit pour savoir où l'application est en fait lancé à partir de:
System.Windows.Forms.Application.StartupPath
Ce dernier est plus fiable que l'ancien si vous essayez d'utiliser l' .exe
emplacement d'un chemin d'accès relatif de trouver les fichiers liés. L'utilisateur peut facilement déplacer les choses après l'installation et ont encore l'application fonctionne très bien parce que .NET applications ne sont pas aussi dépendant de la base de registre.
À l'aide de StartupPath
, vous pourriez même faire quelque chose d'intelligent comme avoir votre application à jour les entrées de registre au moment de l'exécution au lieu de s'écraser lamentablement échoué en raison du manque de/faux, corrompu les entrées.
Et assurez-vous de vérifier les paramètres de l'application des fonctionnalités de stockage pour les valeurs plutôt que dans le registre (Properties.Settings.Default.mySettingEtc
). Vous pouvez lire/écrire des paramètres de l'application et/ou l'utilisateur des niveaux qui sont enregistrés comme simple MyApp.exe.config
fichiers dans des emplacements standard. Un joli coup de coeur (bon vieux Win 3.1/DOS jours) pour l'application installer/supprimer un simple copier/supprimer un dossier de la structure ou les deux, plutôt que de certaines alambiqué, arcanes installation/désinstallation de routine que les feuilles de toutes sortes de déchets dans le registre et éparpillées à travers le disque dur.