1

ユーザーの環境変数の下に、eg というキーを持つ変数を追加しました。

TMP_VAR

と値など。

C:\temp\sim

VS2010 .Net 4.0 で作成された C# アプリケーションで新しいプロセスを開始し、StartInfo.EnvironmentVariables.Add("TMP_VAR", C:\temp\sim); を設定すると、exe ファイルをダブルクリックすると、次のエラーが表示されます。

Item has already been added. Key in dictionary: 'TMP_VAR' Key being added: 'TMP_VAR'

ただし、VS2010 (F5 キーを押す) から起動すると、エラーは発生しません。

私の理論では、VS2010 はなんらかの「シェル」でプロセスを開始し、その「シェル」内の変数を上書きするというものです。

また、私のアプリケーションは、同じキーで異なる値を持つ複数のプロセスを開始します。キーは変更できません。TMP_VAR である必要がありますが、値は変更できます。

私の質問は、アプリケーションが新しいプロセスを開始し、ある種の「シェル」で StartInfo.EnvironmentVariables を使用して同じキーを設定するにはどうすればよいかということです。または、私の問題に対する別のスマートな解決策はありますか?

4

1 に答える 1