C#のProcess.startが環境変数を拡大することを確認するにはどうすればよいですか?
-
10-10-2019 - |
質問
私はそうするようなプロセスを作成しようとしています:
var psi = new ProcessStartInfo
{
FileName = @"%red_root%\bin\texturepreviewer.exe",
UseShellExecute = true
};
var process = Process.Start(psi);
process.WaitForExit();
これで、環境変数「RED_ROOT」は、生成されたプロセスの環境変数に間違いなく存在しますが、実行は環境変数を拡張していないようであるため、ファイルは見つかりません。ファイル名で環境変数を拡張してProcess.startを取得するにはどうすればよいですか?
解決
Environment.ExpandEnvironmentVariables
ここでメソッドが役立つはずです。
指定された文字列に埋め込まれた各環境変数の名前を、変数の値に相当する文字列に置き換え、結果の文字列を返します。
string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe";
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath);
他のヒント
やってみました System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)
?
所属していません StackOverflow