Registry-Tabelle
Die Registry-Tabelle enthält die Registrierungsinformationen, die die Anwendung in der Systemregistrierung festlegen muss.
Die Registry-Tabelle umfasst die folgenden Spalten.
Spalte | Typ | Schlüssel | Nullwerte zulässig |
---|---|---|---|
Registrierung | Identifier | J | N |
Root | Integer | N | N |
Schlüssel | RegPath | N | N |
Name | Formatted | N | J |
Wert | Formatted | N | J |
Component_ | Identifier | N | N |
Spalten
-
Registry
-
Primärschlüssel, der zum Identifizieren eines Registrierungsdatensatzes verwendet wird.
-
Root
-
Der vordefinierte Stammschlüssel für den Registrierungswert. Geben Sie in dieses Feld den Wert „-1“ ein, um den Stammschlüssel vom Installationstyp abhängig zu machen. Geben Sie einen der anderen Werte in die folgende Tabelle ein, um zu erzwingen, dass der Registrierungswert unter einen bestimmten Stammschlüssel geschrieben wird.
Konstant Hexadezimal Decimal Stammschlüssel (none) -0x001 -1 Wenn es sich um eine benutzerspezifische Installation handelt, wird der Registrierungswert unter HKEY_CURRENT_USER geschrieben. Wenn es sich um eine computerspezifische Installation handelt, wird der Registrierungswert unter HKEY_LOCAL_MACHINE geschrieben. Beachten Sie, dass eine computerspezifische Installation angegeben wird, indem die ALLUSERS-Eigenschaft auf „1“ festgelegt wird. msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOTDas Installationsprogramm schreibt den Wert aus dem HKCU\Software\Classes-Hive während der Installation in den benutzerspezifischen Installationskontext oder entfernt ihn daraus.
Das Installationsprogramm schreibt den Wert aus dem HKLM\Software\Classes-Hive während computerspezifischer Installationen oder entfernt ihn.msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE msidbRegistryRootUsers 0x003 3 HKEY_USERS Es wird empfohlen, Registrierungseinträge, die in den HKCU-Hive geschrieben werden, auf eine Komponente verweisen, deren RegistryKeyPath-Bit in der Attributes-Spalte der Component-Tabelle festgelegt ist. Dadurch wird sichergestellt, dass das Installationsprogramm die erforderlichen Registrierungseinträge schreibt, wenn mehrere Benutzer am selben Computer angemeldet sind.
-
Key
-
Der lokalisierbare Schlüssel für den Registrierungswert
-
Name
-
Diese Spalte enthält den Namen des Registrierungswerts (lokalisierbar). Wenn dies NULL ist, werden die in die Value-Spalte eingegebenen Daten in den Standardregistrierungsschlüssel geschrieben.
Wenn die Value-Spalte Null ist, haben die in der folgenden Tabelle in der Name-Spalte angezeigten Zeichenfolgen eine besondere Bedeutung.
String Bedeutung + Der Schlüssel muss erstellt werden, sofern er nicht vorhanden ist, wenn die Komponente installiert wird. - Der Schlüssel muss, sofern vorhanden, mit all seinen Werten und Unterschlüsseln gelöscht werden, wenn die Komponente deinstalliert wird. * Der Schlüssel muss erstellt werden, sofern er nicht vorhanden ist, wenn die Komponente installiert wird. Darüber hinaus muss der Schlüssel, sofern vorhanden, mit all seinen Werten und Unterschlüsseln gelöscht werden, wenn die Komponente deinstalliert wird. Beachten Sie, dass die RemoveRegistry-Tabelle verwendet werden muss, wenn ein installierter Registrierungsschlüssel mit seinen Werten und Unterschlüsseln gelöscht werden soll, wenn die Komponente installiert wird.
-
Value
-
Diese Spalte ist der lokalisierbare Registrierungswert. Das Feld ist Formatiert. Wenn der Wert an eines der folgenden Präfixe (d. h. #%value) angefügt ist, wird der Wert so interpretiert, wie in der Tabelle beschrieben. Beachten Sie, dass jedes Präfix mit einem Nummernzeichen (#) beginnt. Wenn der Wert mit zwei oder mehr aufeinanderfolgenden Nummernzeichen (#) beginnt, wird das erste # ignoriert, und der Wert wird als Zeichenfolge interpretiert und gespeichert.
Präfix Bedeutung #x Der Wert wird als Hexadezimalwert (REG_BINARY) interpretiert und gespeichert. #% Der Wert wird als erweiterbare Zeichenfolge (REG_EXPAND_SZ) interpretiert und gespeichert. # Der Wert wird als ganze Zahl (REG_DWORD) interpretiert und gespeichert. - Wenn der Wert die Sequenz Tilde [~] enthält, wird er als durch NULL getrennte Liste von Zeichenfolgen (REG_MULTI_SZ) interpretiert. Um beispielsweise eine Liste mit den drei Zeichenfolgen a, b und c anzugeben, verwenden Sie „a[~]b[~]c“.
- Die Sequenz [~] innerhalb des Werts trennt die einzelnen Zeichenfolgen und wird als NULL-Zeichen interpretiert und gespeichert.
- Wenn der Zeichenfolgenliste ein [~] vorangestellt ist, müssen die Zeichenfolgen an alle vorhandenen Registrierungswertzeichenfolgen angefügt werden. Wenn im Registrierungswert bereits eine angefügte Zeichenfolge vorkommt, wird die ursprüngliche Zeichenfolge entfernt.
- Wenn auf die Zeichenfolgenliste ein [~] folgt, müssen die Zeichenfolgen allen vorhandenen Registrierungswertzeichenfolgen vorangestellt werden. Wenn im Registrierungswert bereits eine vorangestellte Zeichenfolge vorkommt, wird die ursprüngliche Zeichenfolge entfernt.
- Wenn sich eine [~] sowohl am Anfang als auch am Ende oder weder am Anfang noch am Ende der Zeichenfolgenliste befindet, ersetzen die Zeichenfolgen alle vorhandenen Registrierungswertzeichenfolgen.
- Andernfalls wird der Wert als Zeichenfolge (REG_SZ) interpretiert und gespeichert.
-
Component_
-
Externer Schlüssel in der ersten Spalte der Component-Tabelle, der auf die Komponente verweist, mit der die Installation des Registrierungswerts gesteuert wird.
Bemerkungen
Die Aktionen WriteRegistryValues und RemoveRegistryValues in Sequenztabellen verarbeiten die Informationen in dieser Tabelle. Informationen zur Verwendung von Sequenztabellen finden Sie unter Verwenden einer Sequenztabelle.
Die Registrierungsinformationen werden in die Systemregistrierung geschrieben, wenn die entsprechende Komponente ausgewählt wurde, um lokal installiert oder aus der Quelle ausgeführt zu werden.
Beachten Sie, dass das Installationsprogramm einen Registrierungsschlüssel entfernt, nachdem der letzte Wert oder Unterschlüssel unter dem Schlüssel entfernt wurde. Um zu verhindern, dass ein leerer Registrierungsschlüssel beim Deinstallieren entfernt wird, schreiben Sie einen Dummywert unter den Schlüssel, den Sie beibehalten müssen, und geben Sie in die Name-Spalte „+“ ein. Wenn sich in der Name-Spalte ein „*“ befindet, wird der Schlüssel mit allen Werten und Unterschlüsseln gelöscht, wenn die Komponente entfernt wird.
Mit einer benutzerdefinierten Aktion können Sie bei einer Installations-, Deinstallations- oder Reparaturtransaktion Zeilen zur Registry-Tabelle hinzufügen. Diese Zeilen werden in der Registry-Tabelle nicht beibehalten, und die Informationen sind nur während der aktuellen Transaktion verfügbar. Die benutzerdefinierte Aktion muss daher bei jeder Installations-, Deinstallations- oder Reparaturtransaktion ausgeführt werden, bei der diese Informationen in den zusätzlichen Zeilen erforderlich sind. Die benutzerdefinierte Aktion muss in der Aktionssequenz vor den Aktionen RemoveRegistryValues und WriteRegistryValues stehen.
Informationen zum Schützen eines Registrierungsschlüssels finden Sie in der MsiLockPermissionsEx-Tabelle und der LockPermissions-Tabelle.
Validierung