¿Cómo me aseguro de C # 's Process.Start ampliará variables de entorno?
-
10-10-2019 - |
Pregunta
Estoy intentando crear un proceso de esta manera:
var psi = new ProcessStartInfo
{
FileName = @"%red_root%\bin\texturepreviewer.exe",
UseShellExecute = true
};
var process = Process.Start(psi);
process.WaitForExit();
Ahora la variable de entorno "red_root" sin duda existe en el proceso generado variables de entorno, pero no parece que la ejecución de ampliar la variable de entorno y por lo tanto no se encuentra el archivo. ¿Cómo puedo obtener el Process.Start para ampliar la variable de entorno en el nombre del archivo?
Solución
El Environment.ExpandEnvironmentVariables
método debe ayudar aquí.
Reemplaza el nombre de cada entorno variable integrada en el especificado cadena con la cadena equivalente de el valor de la variable, entonces devuelve la cadena resultante.
string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe";
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath);
Otros consejos
¿Usted ha intentado System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)
?