1

私が作成したいくつかのアプリケーションをインストールするために使用する独自のインストーラー プログラムがあります。

これは「悪いこと」であると読んだので、アプリケーションのデータファイルの更新がユーザーのVirtualStoreに送られるのを避けるために、このプログラムを更新しています。XP の時代のように Program Files にすべてを保存するのではなく、プログラム ファイルと共通データ ファイルを適切な場所に別々に保存することでこれを行っています。

また、SHGetFolderPath (はい、非推奨ですが、まだ XP ユーザーをサポートする必要があります) を使用して、レジストリをトロールする代わりに既知のフォルダーを取得していますが、これは別の「悪いこと」です (読んだ)。

私が次にやろうとしていたことは、インストーラー コードを書き直して、HKLM に何かを書き込むときに Wow6432Node へのレジストリ リダイレクトを回避することでした。これは別の「悪いこと」だと思ったからです。

ただし、そこにあるアプリケーション固有のもの (ユーザーがデフォルト以外にインストールすることを決定した場合のインストール フォルダーなど) を配置することもできますが、キラーはアンインストール情報を HKLM\Software\Microsoft\Windows に配置する必要があることです。 \現在のバージョン\アンインストール. 64 ビット システムで実行されている 32 ビットのものの場合、これは Wow6432Node にリダイレクトされます。これを回避する方法はありません-実際に可能ですか?

4

2 に答える 2

2

UAC レジストリのリダイレクトは、不適切に作成されたソフトウェア (つまり、管理者特権で実行されることを想定しているソフトウェア) との互換性を提供するように特別に設計されているため、「悪いこと」と言えます。

WOW64 レジストリ リダイレクトは別物です。適切に作成された 32 ビット ソフトウェアとの互換性を提供するように設計されています。ソフトウェアが 32 ビットであり、特に 64 ビットに対応する必要がない場合は、レジストリ設定を Wow6432Node にリダイレクトできるようにするなど、エミュレーション環境でそのまま実行しても問題ありません。

必要に応じてWOW64 レジストリ リダイレクトをバイパスできますが、特定の理由がある場合にのみ、恣意的にこれを行うべきではありません。WOW64 リダイレクトが心配な場合、唯一の適切な代替手段は、プログラムの 64 ビット バージョンを提供することです。

于 2012-06-24T20:01:25.683 に答える