28

システム 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 ビット システムの既知の問題ですか?

おそらく最善の方法は、再起動をスケジュールしてすべての拠点をカバーすることです。

ありがとう、アラン

4

2 に答える 2

29

ServerFaultでこの質問を確認してください:再起動せずにWindows環境変数を追加するにはどうすればよいですか?

したがって、環境変数のリストに変更を伝播するために、WM_SETTINGCHANGEKB記事「環境変数をシステムに伝播する方法」で説明されているようにメッセージをブロードキャストする小さなプログラムを作成できます。

于 2011-08-08T16:36:08.810 に答える
6

環境変数を追加または設定すると、WM_SETTINGCHANGEメッセージがすべてのプログラムに送信され、変更が通知されます。ただし、既に実行中のプログラムは、このメッセージ自体を処理できない限り、更新された環境を取得しません。システムを再起動すると、すべてのプログラムが更新されます。

再起動しない回避策:

  1. explorer.exeを強制終了して再起動します。ただし、これは実行中のすべてのプロセスで機能するわけではなく、現在ログオンしているユーザーに対してのみ機能します。
  2. 使用するプロセスまたはプログラムを再起動します。cmd.exe でこれを試してください。繰り返しますが、これはログオンしているユーザーに対してのみ機能します。

要約すると、これをすべてのユーザーで機能させるには、再起動する必要があります。

于 2016-02-11T09:17:35.390 に答える