Wie stelle ich sicher, C # 's Process.Start werden Umgebungsvariablen erweitern?
-
10-10-2019 - |
Frage
Ich bin versucht, ein Verfahren zu schaffen, etwa so:
var psi = new ProcessStartInfo
{
FileName = @"%red_root%\bin\texturepreviewer.exe",
UseShellExecute = true
};
var process = Process.Start(psi);
process.WaitForExit();
Nun ist die Umgebungsvariable „red_root“ existiert auf jeden Fall in dem erzeugten Prozess Umgebungsvariablen, scheint aber die execute nicht die Umgebungsvariable zu erweitern und so die Datei nicht gefunden wird. Wie kann ich die Process.Start die Umgebungsvariable in den Dateinamen zu erweitern?
Lösung
Die Environment.ExpandEnvironmentVariables
Methode sollte hier helfen.
Ersetzt den Namen jeder Umgebung Variable in dem angegebenen eingebettet Zeichenkette mit der Zeichenkette äquivalent der Wert der Variablen, dann gibt den resultierenden String.
string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe";
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath);
Andere Tipps
Haben Sie versucht System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)
?