0

私のアプリケーション セットアップ プロジェクトでは、ユーザーがセットアップ中に "すべてのユーザー" または "Just Me" をチェックしたかどうかに応じて、HKLM/ソフトウェアまたは HKCU/ソフトウェアのいずれかでレジストリ キーをセットアップしようとしています。

その効果のために、ALLUSERS プロパティを使用して、それぞれ 1 または "" に対してチェックしようとしました。

  • すべてのユーザー = 1
  • ALLUSERS = ""

キーの AlwaysCreate プロパティを False に設定しています。それでも、HKLM/Software/ my_keyと HKCU/Software/ my_keyの両方をインストールすると作成されます。

私は何が欠けていますか?

更新: ALLUSERS を角かっこで囲む、推移的なプロパティを有効にする、またはALLUSERS != 1の代わりに= ""を使用するなど、他の代替手段を試してきました。無駄に。私は今のところこれをあきらめ、両方のケースで HKLM の下でのみ作成しています。しかし、誰かが答えを持っていれば、私は本当に感謝しています.

4

1 に答える 1

2

Windows インストーラーについての私の理解では、この動作は抽象化されているため、開発者はそれについて心配する必要はありません。つまり、ALLUSERS プロパティが設定されていない場合、インストール パッケージは "自動的に" レジストリ キーを HKLM ではなく HKCU に配置します。http://msdn.microsoft.com/en-us/library/aa367559%28VS.85%29.aspxにある MSDN のドキュメントを参照してください。したがって、セットアップ プロジェクトを通じてこの機能を再実装しようとしているかのように聞こえます。ALLUSERS プロパティに基づいて条件を削除することをお勧めします。

補足として、AlwaysCreate プロパティは、特にキーの内容に関連して、レジストリ キーが作成される状況を制御します。false に設定すると、「サブキーまたは値がない場合は、このキーを作成しない」ということになります。true に設定すると、「サブキーまたは値があるかどうかに関係なく、このキーを作成する」ことを意味します。ドキュメントは、MSDN ( http://msdn.microsoft.com/en-us/library/e1t11k72%28VS.100%29.aspx ) で再び入手できます。

于 2009-10-25T23:26:07.810 に答える