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