Je travaille sur un programme d'installation utilisant Wix 3.5 qui doit définir la variable d'environnement PATH du système.
Voici comment je définis la variable d'environnement:
<Directory Id="DirectoryName">
<Component Id="ComponentID" Guid="{BE20AF67-5943-4AF4-BE66-226E2D4B844F}">
<Environment Id="EnvironmentID" Name="PATH" Action="set" Value="the path" Part="last" Separator=";" System="yes" />
</Component>
</Directory>
Cela semble fonctionner sur des systèmes 32 bits sans nécessiter de redémarrage pour que les modifications soient reconnues. Cependant, lorsque je l'essaie sur Windows 7 64 bits, un redémarrage est nécessaire.
Est-ce un problème connu sur les systèmes 64 bits?
La meilleure approche serait peut-être de planifier un redémarrage pour couvrir toutes les bases.
Merci Alan
Vérifiez cette question sur ServerFault: Comment ajouter une variable d'environnement Windows sans redémarrer?
Donc, pour propager le changement dans la liste des variables d'environnement, vous pouvez écrire un petit programme qui diffuse WM_SETTINGCHANGE
message comme décrit dans l'article de la base de connaissances Comment propager des variables d'environnement vers le système .
Lorsque vous ajoutez ou définissez une variable d'environnement, un WM_SETTINGCHANGE
un message est envoyé à tous les programmes pour les informer du changement. Cependant, tout programme déjà en cours d'exécution n'obtiendra pas l'environnement mis à jour, sauf s'il peut gérer ce message lui-même. Le redémarrage du système met à jour chaque programme.
Une solution de contournement sans redémarrage:
Donc, en résumé, pour que cela fonctionne pour chaque utilisateur, vous devez toujours redémarrer.