Hinzufügen von Assemblys zu einem Paket

Windows Installer-Entwickler können mithilfe der Richtlinien in diesem Thema Windows Installer-Pakete 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 solle nur eine einzige Assembly enthalten.
  • Alle Dateien in der Assembly sollten sich in einer einzigen Komponente befinden.
  • Für jede Komponente, die eine Assembly enthält, sollte es einen Eintrag in der Tabelle MsiAssembly geben.
  • Der starke Assemblycachename jeder Assembly sollte in der Tabelle MsiAssemblyName hinzugefügt werden.
  • Verwenden Sie zum Registrieren von COM-Interop für eine Assembly anstatt der Tabelle Class die Tabelle Registry.
  • Assemblys, die denselben starken Namen besitzen, sind dieselbe Assembly. Wenn dieselbe Assembly von verschiedenen Anwendungen installiert wird, sollten die Komponenten, die die Assembly enthalten, in ihren Component-Tabellen denselben Wert für „ComponentId“ verwenden.

Hinweis

Produktankündigungen identifizieren Assemblys, die von verschiedenen Anwendungen installiert und verwendet werden können. Produktankündigungen identifizieren keine privaten Assemblys.

 

Hinzufügen von Win32-Assemblys

Halten Sie die folgenden Richtlinien ein, wenn Sie Win32-Assemblys hinzufügen:

  • Der Wert für „KeyPath“ in der Tabelle Component sollte für eine Komponente, die eine Win32-Assembly enthält, nicht Null sein.
  • Der Wert für „KeyPath“ in der Tabelle Component sollte für eine Komponente, die eine Win32-Richtlinienassembly enthält, die Manifestdatei sein.
  • Der Wert für „KeyPath“ in der Tabelle Component sollte für eine Komponente, die eine Win32-Assembly enthält, die keine Richtlinienassembly ist, nicht die Manifestdatei und nicht die Katalogdatei sein. Der Wert sollte eine andere Datei in der Assembly sein.
  • Fügen Sie für jedes Name-Wert-Paar, das im Abschnitt assemblyIdentity des Manifests der Win32-Assembly aufgeführt ist, eine Zeile zur Tabelle MsiAssemblyName hinzu.

Hinzufügen von Assemblys, die zusammen mit dem .NET Framework verwendet werden

Halten Sie sich an die folgenden Richtlinien, wenn Sie Assemblys hinzufügen, die von der Common Language Runtime des .NET Framework verwendet werden.

  • Der Wert für „KeyPath“ in der Tabelle Component sollte für eine Komponente, die die Assembly enthält, nicht Null sein.
  • Wenn Sie eine Assembly, die von der Common Language Runtime verwendet wird, im globalen Assemblycache installieren, muss der Wert in der Spalte „File_Application“ der Tabelle „MsiAssembly“ Null sein.
  • Fügen Sie für jedes Attribut des starken Namens der Assembly eine Zeile zur Tabelle MsiAssemblyName hinzu. Alle Assemblys müssen die „Name“-, „Version“- und „Culture“-Attribute aufweisen, die in der Tabelle „MsiAssemblyName“ angegeben sind. Ein Attribut „publicKeyToken“ ist für eine globale Assembly erforderlich. Die folgende Tabelle ist ein Beispiel für die Tabelle „MsiAssemblyName“ einer globalen Assembly, die von der Common Language Runtime verwendet werden soll.

Tabelle „MsiAssemblyName“

Komponente Name Wert
ComponentA Name Einfach
ComponentA version 1.0.0.0
ComponentA Kultur Neutral
ComponentA publicKeyToken 9d1ec8380f483f5a