2008-09-02 16 views
0

PATH環境を更新し、追加の環境変数を作成するカスタムインストーラアクションがあります。既存のパス変数にディレクトリを追加してもうまくいきますが、何らかの理由で新しい環境変数を作成しようとしても失敗しました。私が使用しているコードは次のとおりです:レジストリに環境変数を作成できません

 using (RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Environment", true)) 
     { 
      reg.SetValue("MYVAR", "SomeVal", RegistryValueKind.ExpandString); 
     } 

編集:OSは32ビットXPです。

答えて

1

レジストリで行う必要がある理由はありますか?

そうでない場合は、.NET 2.0以降でEnvironment.SetEnvironmentVariable()を使用できます。それはあなたがマシン、プロセスまたはユーザーベースで設定することができます。

1

どのようなOSですか?それは64ビットシステム上にありますか?失敗の性質は何ですか?沈黙しているか例外がスローされていますか?

ProcessMonitorを実行して、値を設定しようとしているかどうかを確認できます。

0

私の質問のコードが呼び出されないようにしていたもう一つの問題が判明しました。しかし、環境アセンブリが利用可能になる前に、私が従っていたサンプルコードが書かれていたので、Win32アセンブリを使用していました。だから環境APIを指摘してくれたPeterに感謝します。

1

なぜCustomActionを使用していますか? Windows Installerは、環境変数の更新をネイティブにサポートしています。

関連する問題