インストーラーにカスタムインストールアクションを追加して、インストールディレクトリの1つをSystemPATH環境変数に追加しました。インストーラーを実行した後、PATH変数は変更を反映しますが(コントロールパネル::システムアプレットからアクセスした場合)、新しいコマンドシェルを起動すると、PATH変数は変更を反映しません。私が失敗していることがありますか、それはこれを引き起こしますか?
5 に答える
これは、新しいコマンド シェルをどのように起動しているかによると思います。たとえば、システム プロパティで PATH 環境変数を変更しても、新しいコマンド プロンプトを開くまで変更は反映されません。新しい「cmd」プロセスを(たとえば、実行ダイアログから)起動すると、すべての環境変数の新しいコピーが取得されると思いますが、コマンドプロンプトを別の方法で起動すると、そうではありません。
そのようなスクリプトを介して何かを行った場合、変更に気付く前に再起動する必要がある場合があります。
コマンドシェルをどのように起動していますか? タスクマネージャーで?
エクスプローラーから起動している可能性があります-私の記憶が正しければ、これは、親プロセス (この場合は Windows エクスプローラー) の PATH 変数を継承していることを意味している可能性があります。これはインストーラーが実行される前に設定されていたため、古い値が表示されます。
これが役立つかどうかはわかりません...
http://support.microsoft.com/kb/310519は、システム環境変数 (PATH の 1 つ) には再起動が必要であると述べていますが、ログオフしてからログオンするだけで十分かもしれないと感じています。
なぜこれに CustomAction を使用しているのですか? Windows インストーラーは、環境変数の変更をネイティブにサポートしています。また、Windows インストーラーは、環境変数が変更されたときにシステムを更新するためにブロードキャスト メッセージを送信すると思います。それは再起動する必要がないことを意味するかもしれません...しかし、YMMVを試してからしばらく経ちました。
環境変数をどのように追加していますか?
外部ツールを使用せずに、レジストリに追加できます。次に、新しいコマンド ウィンドウを開くテストに変更が反映されます。