Come faccio a garantire C # 's Process.Start si espanderà variabili d'ambiente?
-
10-10-2019 - |
Domanda
Sto cercando di creare un processo in questo modo:
var psi = new ProcessStartInfo
{
FileName = @"%red_root%\bin\texturepreviewer.exe",
UseShellExecute = true
};
var process = Process.Start(psi);
process.WaitForExit();
Ora la variabile d'ambiente "red_root" esiste sicuramente nel processo generato variabili d'ambiente, ma l'esecuzione non sembra per espandere la variabile d'ambiente e in modo che il file non viene trovato. Come posso ottenere il Process.Start per espandere la variabile d'ambiente nel nome del file?
Soluzione
Il Environment.ExpandEnvironmentVariables
metodo dovrebbe aiutare qui.
Sostituisce il nome di ogni ambiente variabile incorporato nel specificato stringa con la stringa equivalente di il valore della variabile, quindi restituisce la stringa risultante.
string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe";
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath);
Altri suggerimenti
Hai provato System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)
?