中国服务器网

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

为进程设置环境variables

什么是环境variables概念? 在一个C#程序中,我需要调用一个可执行文件。 可执行文件将调用驻留在同一文件夹中的其他可执行文件。 可执行文件依赖于两个环境variables“PATH”和“RAYPATH”来正确设置。 我尝试了以下两件事情: 我创build了一个进程,并在StartInfo中设置了两个variables。 variables已经存在,但缺less所需的信息。 我试图用System.Environment.SetEnvironmentVariable()来设置variables。 当我运行进程时,系统找不到可执行文件(“executeable1”)。 我试图将StartInfo.FileName设置为“executeable1”的完整path – 但是然后在“executeable1”中调用form的EXE文件没有find… 我如何处理这个? 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"; […]