システムPATH環境変数を設定する必要があるWix 3.5を使用するインストーラーで作業しています。
これは私が環境変数を設定する方法です:
<Directory Id="DirectoryName">
<Component Id="ComponentID" Guid="{BE20AF67-5943-4AF4-BE66-226E2D4B844F}">
<Environment Id="EnvironmentID" Name="PATH" Action="set" Value="the path" Part="last" Separator=";" System="yes" />
</Component>
</Directory>
これは、変更を認識させるために再起動を必要とせずに32ビットシステムで動作しているようです。ただし、64ビットWindows 7で試してみると、再起動が必要です。
これは64ビットシステムでの既知の問題ですか?
たぶん、最善のアプローチは、すべてのベースをカバーするために再起動をスケジュールすることです。
ありがとう、アラン
ServerFaultで次の質問を確認してください。 再起動せずにWindows環境変数を追加するにはどうすればよいですか?
そのため、環境変数のリストに変更を反映させるために、ブロードキャストする小さなプログラムを書くことができます WM_SETTINGCHANGE
KB記事で説明されているメッセージ 環境変数をシステムに伝播する方法 。
環境変数を追加または設定すると、WM_SETTINGCHANGE
メッセージがすべてのプログラムに送信され、変更を通知します。ただし、既に実行されているプログラムは、このメッセージ自体を処理できない限り、更新された環境を取得しません。システムを再起動すると、すべてのプログラムが更新されます。
再起動せずに回避策:
要約すると、これをすべてのユーザーに対して機能させるには、リブートする必要があります。