Ustaw zmienne środowiskowe dla procesu

Czym jest koncepcja zmiennej środowiskowej?

W programie C # muszę wywołać plik wykonywalny. Plik wykonywalny wywoła kilka innych plików wykonywalnych znajdujących się w tym samym folderze. Pliki wykonywalne polegają na ustawieniu dwóch zmiennych środowiskowych „PATH” i „RAYPATH”. Próbowałem następujących dwóch rzeczy:

Stworzyłem proces i ustawiłem dwie zmienne w StartInfo. Zmienne już istnieją, ale brakuje potrzebnych informacji.Próbowałem ustawić zmienne za pomocą System.Environment.SetEnvironmentVariable ().

Po uruchomieniu procesu system nie może znaleźć pliku wykonywalnego („executeable1”). Próbowałem ustawić StartInfo.FileName na pełną ścieżkę „executeable1” - jednak pliki EXE o nazwie formularz w „executeable1” nie zostały znalezione ...

Jak sobie z tym poradzić?

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();

questionAnswers(2)

yourAnswerToTheQuestion