Ich habe Probleme mit der Einstellung von Umgebungsvariablen mit C #.
Ich muss unter Umständen einige Umgebungsvariablen ändern. Zum Beispiel muss ich NDSRC Variable ändern.
Ich benutze:
%Vor%Das funktioniert gut.
Als nächstes starte ich ein Skript, das die Variable benutzt. Und jetzt gibt es ein Problem, weil Skript die Variable nicht sieht.
Beispiel: Setzen Sie die Pfadvariable (fügen Sie ein Verzeichnis am Ende hinzu) mit
%Vor%Öffnen Sie die Windows-Befehlszeile (Start- & gt; run- & gt; cmd.exe).
Geben Sie in der Befehlszeile cmd
einDas System kann cmd.exe nicht finden: 'cmd' wird nicht als interner oder externer Befehl, ausführbares Programm oder Batchdatei erkannt.
Wenn Sie Windows-Einstellungen überprüfen - & gt; Umgebungsvariablen, Pfad ist korrekt auf neuen Wert eingestellt. Wenn Sie die geöffnete Eingabeaufforderung einchecken, wird dies ebenfalls festgelegt.
Leider müssen Sie Ihren Prozess neu starten, bevor die Umgebungsvariablen aktualisiert werden können. Siehe MSDN-Post .
Es ist beabsichtigt, dass die Variablen beim Start des Prozesses vererbt werden und danach unverändert bleiben.
Es gibt jedoch keinen Grund, warum Sie nicht regelmäßig die relevanten Registrierungsschlüssel lesen und die Umgebungsvariablen Ihres Prozesses manuell aktualisieren können. In der Tat ist dies das Richtige , wenn Sie nach aktuellen Werten suchen.
Grundsätzlich speichert die Registry eine Vorlage für Umgebungsvariablen, und das bearbeiten Sie über "Windows-Einstellungen - & gt; Umgebungsvariablen". Wenn Sie das tun, sendet Windows eine Nachricht an alle interessierten Parteien. Solche Parteien können dann ihre Kopie der Umgebungsvariablen aus der Registrierung neu erstellen.
Ich bin mir keiner vorgefertigten Funktion bewusst, die Sie einfach aufrufen können, um diese Neuerstellung durchzuführen, daher müssen Sie wahrscheinlich Ihre eigene schreiben.
Tags und Links c# environment-variables