Ich habe eine benutzerdefinierte Umgebungsvariable hinzugefügt und kann sie nicht in ExpandEnvironmentVariables zurückgeben.Wie erhält man ExpandEnvironmentVariables, um benutzerdefinierte Variablen zurückzugeben?
Diese 2 Anrufe funktionieren:
string s = Environment.GetEnvironmentVariable("TEST", EnvironmentVariableTarget.Machine);
// s = "D: \ Temp2"
string path = Environment.ExpandEnvironmentVariables(@"%windir%\Temp1");
// path = "C: \ Windows \ Temp1"
Dieser Aufruf gibt jedoch dieselbe Eingabezeichenfolge zurück:
var path = Environment.ExpandEnvironmentVariables(@"%TEST%\Temp1");
// path = "%TEST%\\Temp1"
Ich erwarte, dass D zu erhalten: \ Temp2 \ Temp1
Was bin ich richtig die benutzerdefinierte EnvironmentVariable in diesem letzten Anruf zu erhalten?
Setzen Sie die Variable im Code? Wenn ja, kannst du deine Frage so bearbeiten, dass sie den Code enthält? – stuartd
Der offensichtlichste Grund ist, dass Sie diese Variable der Systemumgebung hinzugefügt haben, ohne dass Sie VS oder Ihr Programm neu starten müssen. Sei 100%, dass die Änderungen wirksam sind, indem du dich abmeldest und wieder einloggst. –
Um die Systemvariablen zu setzen, verwende ich einfach die System-Eigenschaften des OS-Interface. Ich lese nur die Variable im Code. GetEnvironmentVariable funktioniert, aber ExpandEnvironmentVariables tut nicht ... –