次の方法で共有


レジストリ テーブル

レジストリ テーブルには、アプリケーションがシステム レジストリで設定する必要があるレジストリ情報が格納されます。

レジストリ テーブルには、次の列があります。

コラム 種類 許容
記帳 識別子の Y N
整数 N N
RegPath する N N
名前 書式設定された N Y
価値 書式設定された N Y
コンポーネント_ 識別子の N N

 

レジストリ

レジストリ レコードを識別するために使用される主キー。

ルート

レジストリ値の定義済みのルート キー。 ルート キーをインストールの種類に依存させるために、このフィールドに -1 の値を入力します。 次の表に他の値のいずれかを入力して、レジストリ値を特定のルート キーの下に強制的に書き込みます。

定数 16 進 数 小数 ルート キー
(なし) - 0x001 -1 これがユーザーごとのインストールの場合、レジストリ値は HKEY_CURRENT_USERの下に書き込まれます。 これがマシンごとのインストールの場合、レジストリ値は HKEY_LOCAL_MACHINEの下に書き込まれます。 マシンごとのインストールは、ALLUSERS プロパティを 1 に設定することによって指定されることに注意してください。
msidbRegistryRootClassesRoot する 0x000 0 HKEY_CLASSES_ROOTインストーラーは、HKCU\Software\Classes hive の値を、ユーザーごとの インストール コンテキストのインストール時に書き込むか削除します。
インストーラーは、マシンごとのインストール中に、HKLM\Software\Classes hive の値を書き込むか、または削除します。
msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER
msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE
msidbRegistryRootUsers 0x003 3 HKEY_USERS

 

HKCU hive に書き込まれたレジストリ エントリは、コンポーネント テーブルの [属性] 列に RegistryKeyPath ビットが設定されているコンポーネント参照することをお勧めします。 これにより、同じコンピューターに複数のユーザーがいる場合に、インストーラーによって必要なレジストリ エントリが書き込まれます。

キー

レジストリ値のローカライズ可能なキー。

この列には、レジストリ値の名前 (ローカライズ可能) が含まれています。 これが Null の場合、[値] 列に入力されたデータが既定のレジストリ キーに書き込まれます。

[値] 列が Null の場合、[名前] 列の次の表に示す文字列は特別な意味を持ちます。

意味
+ キーは、コンポーネントのインストール時に作成されます (存在しない場合)。
- コンポーネントがアンインストールされるときに、キーが存在する場合は、その値とサブキーをすべて削除します。
* キーは、コンポーネントのインストール時に作成されます (存在しない場合)。 さらに、コンポーネントがアンインストールされるときに、キーが存在する場合は、その値とサブキーをすべて削除します。

 

コンポーネントのインストール時に、RemoveRegistry テーブル、インストールされているレジストリ キーとその値とサブキーを削除する場合に使用する必要があることに注意してください。

この列はローカライズ可能なレジストリ値です。 フィールドは 書式設定されたです。 値が次のいずれかのプレフィックス (つまり、#%) に関連付けられている場合、値は表の説明に従って解釈されます。 各プレフィックスは数字記号 (#)で始まる点に注意してください。 値が 2 つ以上の連続する数値記号 (#)で始まる場合、最初の # は無視され、値は解釈され、文字列として格納されます。

接頭辞 意味
#x 値は解釈され、16 進値 (REG_BINARY) として格納されます。
#% 値は、展開可能な文字列 (REG_EXPAND_SZ) として解釈され、格納されます。
# 値は整数 (REG_DWORD) として解釈され、格納されます。

 

  • 値にシーケンス チルダ [~] が含まれている場合、値は null で区切られた文字列のリスト (REG_MULTI_SZ) として解釈されます。 たとえば、a、b、c の 3 つの文字列を含むリストを指定するには、"a[~]b[~]c" を使用します。
  • 値内のシーケンス [~] は個々の文字列を区切り、Null 文字として解釈されて格納されます。
  • 文字列リストの前に [~] がある場合、文字列は既存のレジストリ値文字列に追加されます。 レジストリ値に追加文字列が既に存在する場合は、文字列の元の出現箇所が削除されます。
  • [~] が文字列リストの末尾に続く場合、文字列は既存のレジストリ値文字列の先頭に付加されます。 レジストリ値にプリペンド文字列が既に存在する場合は、文字列の元の出現箇所が削除されます。
  • [~] が先頭と末尾の両方にある場合、または文字列リストの先頭と末尾の両方に存在する場合、文字列は既存のレジストリ値文字列を置き換えます。
  • それ以外の場合、値は解釈され、文字列 (REG_SZ) として格納されます。

Component_

レジストリ値のインストールを制御するコンポーネントを参照 コンポーネント テーブルの最初の列の外部キー。

備考

WriteRegistryValues および removeRegistryValues 、このテーブル内の情報を処理シーケンス テーブルのアクションを します。 シーケンス テーブル 使用の詳細については、「シーケンス テーブル の使用を参照してください。

レジストリ情報は、対応するコンポーネントがローカルにインストールされるか、ソースから実行されるように選択されると、システム レジストリに書き出されます。

インストーラーは、キーの最後の値またはサブキーを削除した後、レジストリ キーを削除することに注意してください。 アンインストール時に空のレジストリ キーが削除されないようにするには、保持する必要があるキーの下にダミー値を書き込み、[名前] 列に「+」と入力します。 * が [名前] 列にある場合、コンポーネントが削除されると、すべての値とサブキーを含むキーが削除されます。

カスタム アクションを使用して、インストール、アンインストール、または修復トランザクション中にレジストリ テーブルに行を追加できます。 これらの行はレジストリ テーブルに保持されず、情報は現在のトランザクション中にのみ使用できます。 そのため、これらの追加行の情報を必要とするすべてのインストール、アンインストール、または修復トランザクションでカスタム アクションを実行する必要があります。 カスタム アクションは、RemoveRegistryValues および WriteRegistryValues アクションの前に実行する必要があります。

レジストリ キーをセキュリティで保護する方法については、「MsiLockPermissionsEx Table と LockPermissions Table を参照してください。

検証

ICE02
ICE03
ICE06
ICE32
ICE38
ICE43
ICE46
ICE49
ICE53
ICE55
ICE57
ICE70
ICE80