0

PATH環境を更新し、追加の環境変数を作成するカスタムインストーラーアクションがあります。既存のパス変数にディレクトリを追加することは正常に機能していますが、何らかの理由で、新しい環境変数を作成する試みが失敗しました。私が使用しているコードは次のとおりです。

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

編集:OSは32ビットXPであり、私が知る限り、サイレントに失敗しています。

4

4 に答える 4

1

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

于 2008-11-19T19:15:36.760 に答える
1

これは何のOSですか?64ビットシステムですか?失敗の性質は何ですか:サイレントまたは例外がスローされますか?

ProcessMonitorを実行して、値を設定する試みが表示されるかどうかを確認してみてください。

于 2008-09-02T22:57:09.253 に答える
1

レジストリを介してそれを行う必要がある理由はありますか?

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

于 2008-09-02T22:58:11.437 に答える
0

私の質問のコードが呼び出されないようにする別の問題があったことがわかりました。ただし、Win32 アセンブリを使用していました。これは、Environment アセンブリが利用可能になる前に、私が従ったサンプル コードが作成されたためです。環境 API を指摘してくれた Peter に感謝します。

于 2008-09-03T15:36:30.660 に答える