Как я могу обеспечить процесс C#. Start расширит переменные среды?

StackOverflow https://stackoverflow.com/questions/4388639

Вопрос

Я пытаюсь создать процесс, как так:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top