Как обеспечить, чтобы С# Process.Start расширяет переменные среды?
Я пытаюсь создать такой процесс:
var psi = new ProcessStartInfo
{
FileName = @"%red_root%\bin\texturepreviewer.exe",
UseShellExecute = true
};
var process = Process.Start(psi);
process.WaitForExit();
Теперь переменная окружения "red_root" определенно существует в переменных среды созданного процесса, но выполнение, похоже, не расширяет переменную среды, поэтому файл не найден. Как я могу заставить Process.Start расширять переменную среды в имени файла?
Ответы
Ответ 1
Метод Environment.ExpandEnvironmentVariables
должен помочь здесь.
Заменяет имя каждой среды переменная, встроенная в указанный строка со строковым эквивалентом значение переменной, то возвращает результирующую строку.
string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe";
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath);
Ответ 2
Вы пробовали System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)
?