Verwenden von 64-Bit-Windows Installer-Paketen
Wenn Sie 64-Bit-Windows Installer-Pakete oder Anwendungen erstellen, die Windows Installer aufrufen, um 64-Bit-Pakete zu installieren, gehen Sie wie folgt vor:
- Verwenden Sie ein Windows Installer-Datenbankschema von 200 oder höher. Geben Sie an, dass mindestens Version 2.0 des Installers zum Installieren des Pakets erforderlich ist, indem Sie die Eigenschaft Page Count Summary auf die ganze Zahl 200 festlegen. Frühere Versionen von Windows Installer lehnen Versuche ab, 64-Bit-Pakete zu installieren. Für 64-Bit-Pakete auf der Arm64-Plattform muss das Windows Installer-Datenbankschema mindestens 500 sein.
- Geben Sie in der Eigenschaft Vorlagenzusammenfassung des Paketzusammenfassungsinformationsdatenstroms an, dass es sich um ein 64-Bit-Paket handelt. Geben Sie „Intel64“ in das Plattformfeld der Eigenschaft Vorlagenzusammenfassung ein, wenn das Paket auf einem Intel64-Prozessor ausgeführt werden soll. Geben Sie „x64“ ein, wenn das Paket auf einem erweiterten 64-Bit-Prozessor ausgeführt werden soll. Geben Sie „Arm64“ ein, wenn das Paket auf einem Arm64-Prozessor ausgeführt werden soll. Ein Paket kann nicht für Unterstützung von sowohl Intel64- als auch x64-Plattformen markiert werden. Der Eigenschaftswert „Intel64,x64“ ist für die Vorlagenzusammenfassung ungültig. Ein Paket kann nicht für Unterstützung von sowohl 32-Bit- als auch 64-Bit-Plattformen markiert werden. Die Eigenschaftswerte „Intel,x64“ oder „Intel,Intel64“ sind für die Vorlagenzusammenfassung ungültig.
- Identifizieren Sie jede 64-Bit-Komponente, indem Sie msidbComponentAttributes64bit in der Attributspalte der Komponententabelle festlegen.
- Verwenden Sie optionale Bedingungsanweisungen, die die Version des 64-Bit-Betriebssystems überprüfen, indem Sie auf die Eigenschaft VersionNT64 verweisen. Windows Installer legt diese Eigenschaft auf die 64-Bit-Windows-Version fest und lässt VersionNT64 undefiniert, wenn das Betriebssystem kein 64-Bit-Windows ist. Weitere Informationen finden Sie unter Verwenden von Eigenschaften in Bedingungsanweisungen.
- Verwenden Sie optionale Bedingungsanweisungen, die die numerische Prozessorebene des Computers überprüfen, indem sie auf die Eigenschaft Intel64 oder Msix64 verweisen. Windows Installer legt diese Eigenschaften auf die aktuelle numerische Prozessorebene des Computers fest und lässt die Eigenschaft Intel64 undefiniert, wenn es sich nicht um einen Itanium-basierten Prozessor handelt. Weitere Informationen finden Sie unter Verwenden von Eigenschaften in Bedingungsanweisungen.
- Verwenden Sie die AppSearch-Tabelle und die AppSearch-Aktion, um optionale Suchvorgänge nach vorhandenen 64-Bit-Komponenten in der Registrierung durchzuführen. Um nach vorhandenen 64-Bit-Komponenten zu suchen, fügen Sie das Bit msidbLocatorType64bit in die Typspalte der RegLocator-Tabelle ein. Weitere Informationen finden Sie unter Suchen nach vorhandenen Anwendungen, Dateien, Registrierungseinträgen oder INI-Dateieinträgen
- Rufen Sie die Pfade zu Systemordnern ab, indem Sie auf die Eigenschaften System64Folder, ProgramFiles64Folder und CommonFiles64Folder für die 64-Bit-Ordner und die Eigenschaften SystemFolder, ProgramFilesFolder und CommonFilesFolder für die 32-Bit-Ordner verweisen.
- Stellen Sie sicher, dass die Anwendung bei Verweisen auf eine 64-Bit-Komponente die richtige GUID verwendet. Wenn es 32-Bit- und 64-Bit-Versionen einer bestimmten Komponente gibt, sollten diese unterschiedliche Komponenten-ID-GUIDs aufweisen.
- Bestimmen Sie, ob bei der Installation von 64-Bit-Anwendungen neue Umgebungsvariablen definiert werden müssen.
- Wenn ein 64-Bit-ODBC-Treiber-Manager installiert werden soll, sollte die Komponente, die ihn enthält, „ODBCDriverManager64“ heißen. Der ODBC-Treiber-Manager muss im Installationspaket erstellt werden, und eine Komponente mit dem Namen „ODBCDriverManager64“ muss enthalten sein. Der Manager wird bei Bedarf installiert.
- Stellen Sie sicher, dass die Anwendung nur 32-Bit-Dienste aufruft, die als ausführbare Dateien ausgeführt werden. Anwendungen sollten keine 32-Bit-Dienste aufrufen, die in DLLs ausgeführt werden.
- Wenn die Anwendung koexistierende 32-Bit- und 64-Bit-Versionen einer Komponente installiert, überprüfen Sie, ob die Anwendung INI-Dateiinformationen ordnungsgemäß teilt.
- Stellen Sie sicher, dass die Anwendung 32-Bit-Patches nur auf 32-Bit-Binärdateien und 64-Bit-Patches nur auf 64-Bit-Binärdateien anwendet.
- Berücksichtigen Sie zukünftige Upgradeszenarien für 32-Bit- und 64-Bit-Versionen und nutzen Sie aktuelle Upgradecodes. Weitere Informationen finden Sie unter Patchen und Upgrades.
- Wenn Sie eine Bootstrapping-Anwendung zum Installieren eines 64-Bit-Windows Installer-Pakets verwenden, kompilieren Sie die Bootstrapping-Anwendung als 64-Bit-Anwendung.
- Um die Registrierungsreflektion für Registrierungsschlüssel zu deaktivieren, die von einer bestimmten Komponente betroffen sind, legen Sie das Bit msidbComponentAttributesDisableRegistryReflection im Feld Attribute der Komponententabelle fest. Dies kann erforderlich sein, damit 32-Bit- und 64-Bit-Kopien derselben Anwendung gleichzeitig vorhanden sein können. Wenn dieses Bit festgelegt ist, ruft Windows Installer die Funktion RegDisableReflectionKey für jeden Schlüssel auf, auf den die Komponente zugreift. Dieses Bit ist ab Windows Installer Version 4.0 verfügbar. Dieses Bit wird auf 32-Bit-Systemen ignoriert. Dieses Bit wird in den 64-Bit-Versionen von Windows XP und Windows 2000 ignoriert.
Hinweis
Der Wert des numerischen Registrierungsstamms, der vom lpPathBuf-Parameter der MsiGetComponentPath-Funktion zurückgegeben wird, unterscheidet zwischen Komponenten auf 32-Bit- und 64-Bit-Betriebssystemen. Weitere Informationen finden Sie unter MsiGetComponentPath-Funktion.
Zugehörige Themen