Какова концепция переменной среды?
В программе С# мне нужно вызвать исполняемый файл. Исполняемый файл вызывает другие исполняемые файлы, которые находятся в одной папке. Исполняемые файлы полагаются на две переменные среды: "PATH" и "RAYPATH" для правильной установки. Я пробовал следующие две вещи:
- Я создал процесс и задал две переменные в StartInfo. переменные уже существуют, но отсутствуют необходимая информация.
- Я попытался установить переменные с System.Environment.SetEnvironmentVariable().
Когда я запускаю процесс, система не может найти исполняемый файл ( "executeable1" ). Я попытался установить StartInfo.FileName на полный путь "executeable1" - однако тогда файлы EXE, называемые формой внутри "executeable1" , не найдены...
Как я могу справиться с этим?
string pathvar = System.Environment.GetEnvironmentVariable("PATH");
System.Environment.SetEnvironmentVariable("PATH", pathvar + @";C:\UD_\bin\DAYSIM\bin_windows\;C:\UD_\bin\Radiance\bin\;C:\UD_\bin\DAYSIM;");
System.Environment.SetEnvironmentVariable("RAYPATH", @"C:\UD_\bin\DAYSIM\lib\;C:\UD_\bin\Radiance\lib\");
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.WorkingDirectory = @"C:\UD_\bin\DAYSIM\bin_windows";
//string pathvar = p.StartInfo.EnvironmentVariables["PATH"];
//p.StartInfo.EnvironmentVariables["PATH"] = pathvar + @";C:\UD_\bin\DAYSIM\bin_windows\;C:\UD_\bin\Radiance\bin\;C:\UD_\bin\DAYSIM;";
//p.StartInfo.EnvironmentVariables["RAYPATH"] = @"C:\UD_\bin\DAYSIM\lib\;C:\UD_\bin\Radiance\lib\";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.FileName = "executeable1";
p.StartInfo.Arguments = arg1 + " " + arg2;
p.Start();
p.WaitForExit();