Hinzufügen von Assemblys zu einem Paket
Windows Installerentwickler können die Richtlinien in diesem Thema verwenden, um Windows Installer-Pakete zu erstellen, die Assemblys enthalten.
Die folgenden Richtlinien gelten für Win32-Assemblys und Assemblys, die von der Common Language Runtime des Microsoft-.NET Framework verwendet werden.
- Eine Windows Installer-Komponente darf nicht mehr als eine Assembly enthalten.
- Alle Dateien in der Assembly sollten sich in einer einzelnen Komponente befinden.
- Jede Komponente, die eine Assembly enthält, sollte über einen Eintrag in der MsiAssembly-Tabelle verfügen.
- Der starke Assemblycachename jeder Assembly sollte in der MsiAssemblyName-Tabelle erstellt werden.
- Verwenden Sie die Tabelle Registry anstelle der Class-Tabelle, wenn Sie COM Interop für eine Assembly registrieren.
- Assemblys mit dem gleichen starken Namen sind dieselbe Assembly. Wenn dieselbe Assembly von verschiedenen Anwendungen installiert wird, sollten die Komponenten, die die Assembly enthalten, den gleichen Wert für componentId in ihren Komponententabellen verwenden.
Hinweis
Produktanzeigen identifizieren Assemblys, die von verschiedenen Anwendungen installiert und verwendet werden können. Produktankündigungen identifizieren keine privaten Assemblys.
Hinzufügen von Win32-Assemblys
Verwenden Sie die folgenden Richtlinien, wenn Sie Win32-Assemblys einschließen:
- Der KeyPath-Wert in der Tabelle Komponente für eine Komponente, die eine Win32-Assembly enthält, darf nicht NULL sein.
- Der KeyPath-Wert in der Tabelle Komponente für eine Komponente, die eine Win32-Richtlinienassembly enthält, sollte die Manifestdatei sein.
- Der KeyPath-Wert in der Tabelle Komponente für eine Komponente, die eine Win32-Assembly enthält, die keine Richtlinienassembly ist, sollte nicht die Manifestdatei oder Katalogdatei sein. Es sollte eine andere Datei in der Assembly sein.
- Fügen Sie der MsiAssemblyName-Tabelle für jedes Name-Wert-Paar, das im Abschnitt assemblyIdentity des Manifests der Win32-Assembly aufgeführt ist, eine Zeile hinzu.
Hinzufügen von Assemblys, die mit dem .NET Framework
Befolgen Sie die folgenden Richtlinien, wenn Sie Assemblys einschließen, die von der Common Language Runtime des .NET Framework verwendet werden.
- Der KeyPath-Wert in der Tabelle Komponente für eine Komponente, die die Assembly enthält, sollte nicht NULL sein.
- Wenn Sie eine von der Common Language Runtime verwendete Assembly im globalen Assemblycache installieren, muss der Wert in der _ Spalte Dateianwendung der MsiAssembly-Tabelle NULL sein.
- Fügen Sie der MsiAssemblyName-Tabelle für jedes Attribut des starken Namens der Assembly eine Zeile hinzu. Alle Assemblys müssen die Attribute Name, Version und Culture aufweisen, die in der MsiAssemblyName-Tabelle angegeben sind. Ein publicKeyToken-Attribut ist für eine globale Assembly erforderlich. Die folgende Tabelle ist ein Beispiel für die MsiAssemblyName-Tabelle für eine globale Assembly zur Verwendung durch die Common Language Runtime.
| Komponente | Name | Wert |
|---|---|---|
| ComponentA | Name | Einfach |
| ComponentA | version | 1.0.0.0 |
| ComponentA | culture | Neutral |
| ComponentA | Publickeytoken | 9d1ec8380f483f5a |