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?

War es hilfreich?

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)?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top