環境変数の概念とは何ですか?
C#プログラムでは、実行可能ファイルを呼び出す必要があります。実行可能ファイルは、同じフォルダーにある他の実行可能ファイルを呼び出します。実行可能ファイルは、正しく設定される2つの環境変数「PATH」と「RAYPATH」に依存しています。私は次の2つのことを試しました:
- プロセスを作成し、StartInfoで2つの変数を設定しました。変数はすでに存在しますが、必要な情報が不足しています。
- System.Environment.SetEnvironmentVariable()で変数を設定しようとしました。
プロセスを実行すると、システムは実行可能ファイル( "executeable1")を見つけることができません。StartInfo.FileNameを「executeable1」のフルパスに設定しようとしましたが、「executeable1」内のformと呼ばれるEXEファイルが見つかりません...
どうすればこれに対処できますか?
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();