Question

J'ai une action d'installation personnalisée qui met à jour l'environnement PATH et crée une variable d'environnement supplémentaire.L'ajout d'un répertoire à la variable de chemin existante fonctionne correctement, mais pour une raison quelconque, mes tentatives de création d'une nouvelle variable d'environnement ont échoué.Le code que j'utilise est :

        using (RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Environment", true))
        {
            reg.SetValue("MYVAR", "SomeVal", RegistryValueKind.ExpandString);
        }

Modifier:Le système d'exploitation est XP 32 bits et, pour autant que je sache, il échoue silencieusement.

Était-ce utile?

La solution

Y a-t-il une raison pour laquelle vous devez le faire via le registre ?

Sinon, vous pouvez utiliser Environment.SetEnvironmentVariable() depuis .NET 2.0.Il vous permet de définir des paramètres par machine, par processus ou par utilisateur.

Autres conseils

De quel système d'exploitation s'agit-il ?Est-ce sur un système 64 bits ?Quelle est la nature de la panne :silencieux ou une exception est-elle levée ?

Tu pourrais essayer de courir ProcessMoniteur et voir s'il voit la tentative de définition de la valeur.

Pourquoi utilisez-vous une CustomAction pour cela ?Windows Installer prend en charge la mise à jour native des variables d'environnement.

Il s'avère qu'il y avait un autre problème qui empêchait l'appel du code de ma question.Cependant, j'utilisais l'assembly Win32 car l'exemple de code que je suivais a été écrit avant que l'assembly Environment ne soit disponible.Merci donc Peter d'avoir signalé l'API d'environnement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top