Definir variáveis ​​de ambiente para um processo

Qual é o conceito de variável de ambiente?

Em um programa c # eu preciso chamar um executável. O executável chamará alguns outros executáveis ​​que residam na mesma pasta. Os executáveis ​​contam com as duas variáveis ​​de ambiente "PATH" e "RAYPATH" para serem configuradas corretamente. Eu tentei as seguintes duas coisas:

Eu criei um processo e configurei as duas varáveis ​​em StartInfo. As variáveis ​​já existem, mas faltam as informações necessárias.Eu tentei definir as variáveis ​​com System.Environment.SetEnvironmentVariable ().

Quando executo o processo, o sistema não consegue encontrar o executável ("executável1"). Eu tentei definir StartInfo.FileName para o caminho completo de "executeable1" - no entanto, os arquivos EXE chamados formulário dentro de "executeable1" não são encontrados ...

Como eu lido com isso?

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