Powershell-Umgebungsvariablen werden nicht aktualisiert

8

Ich habe ein Wix-Installationsprogramm, das die Umgebungsvariable mit <Environment /> element aktualisiert.

Der Wert der Umgebungsvariablen wird in der Registrierung aktualisiert. Aber wenn ich versuche, Powershell zu öffnen, sieht es keine Änderungen, wenn ich meinen PC nicht neu starte.

Hat jemand irgendwelche Gedanken darüber, warum / wie und wie kann ich einen Neustart vermeiden? Danke im Voraus, nomail

Update : Ich habe herausgefunden, warum das passiert. Es stellt sich heraus, dass die Sitzungsvariablen beim Neustart aktualisiert werden oder wenn eine System-Broadcast-Nachricht gesendet wird. So senden Sie eine Broadcast-Nachricht

%Vor%

Eine weitere schmutzige Möglichkeit, eine Nachricht zu senden, ist die Verwendung des Befehls SETX , der einen neuen Wert in die Umgebungsvariablen schreibt und die Sitzungsinformationen aktualisiert

%Vor%

Beachten Sie, dass Sie die CommandLine- oder PowerShell-Konsole immer noch schließen und öffnen müssen

    
nomail 15.01.2013, 06:45
quelle

2 Antworten

2

Dies liegt fast sicher daran, dass ein <WriteEnvironmentStrings> -Element im Abschnitt <InstallExecuteSequence> Ihrer WIX-Datei fehlt. Diese benutzerdefinierte Aktion ist verantwortlich für das Senden der Broadcast WM_SETTINGSCHANGE Nachricht.

Dies ist nicht genau ein Fehler in der WIX, eher eine schlecht dokumentierte Anforderung. Um WIX effektiv zu verwenden, müssen Sie auch die Referenzdokumente der Windows Installer-Datenbank verstehen, nicht nur die XML-Datei. Im MSDN-Thema in der Umgebungstabelle wird die Notwendigkeit zum Aufrufen der benutzerdefinierten Aktionen WriteEnvironmentStrings und RemoveEnvironmentStrings beschrieben, jedoch in der Terminologie das kann jemand ohne gebürtigen MSI Hintergrund fremd sein.

Ein Artikel, der dies zeigt, ist Ссылка

    
Burt_Harris 19.07.2014, 00:34
quelle
1

scheint ein spezifisches wix-Problem zu sein, siehe Kommentare unten: diese Seite

    
Loïc MICHEL 15.01.2013 09:03
quelle

Tags und Links