Bereitstellen einer Interop-Anwendung

Eine Interop-Anwendung umfasst in der Regel eine .NET-Clientassembly, eine oder mehrere Interop-Assemblys, die verschiedene COM-Typbibliotheken darstellen, sowie eine oder mehrere registrierte COM-Komponenten. Visual Studio und Windows Software Development Kit (SDK) enthalten Tools zum Importieren einer Typbibliothek und anschließenden Konvertieren der Typbibliothek in eine Interopassembly. Informationen hierzu erhalten Sie unter Importieren einer Typbibliothek als Assembly. Interopanwendungen können auf zwei Arten bereitgestellt werden:

  • Durch das Verwenden von eingebetteten Interop-Typen: Indem Sie mit der .NET Framework, Version 4-Anweisung beginnen, wird der Compiler angewiesen, Typinformationen von einer Interopassembly in die EXE-Datei einzubetten. Der Compiler bettet nur die Typinformationen ein, die von der Anwendung verwendet werden. Die Interopassembly muss nicht mit der Anwendung bereitgestellt werden. Dies ist das empfohlene Verfahren.

  • Durch das Bereitstellen von Interopassemblys: Sie können einen Standardverweis auf eine Interopassembly erstellen. In diesem Fall muss die Interopassembly mit der Anwendung bereitgestellt werden. Wenn Sie dieses Verfahren und keine private COM-Komponente verwenden, verweisen Sie immer auf die primäre Interopassembly (Primary Interop Assembly, PIA), die vom Verfasser der COM-Komponente, die Sie in den verwalteten Code aufnehmen möchten, veröffentlicht wurde. Weitere Informationen zum Erstellen und Verwenden von primären Interopassemblys finden Sie unter Primäre Interopassemblys.

Bei der Verwendung von eingebetteten Interoptypen ist die Bereitstellung einfach und unkompliziert. Hierzu ist keine besondere Vorgehensweise erforderlich. Der Artikel beschreibt im Folgenden das Bereitstellen von Interopassemblys mit der Anwendung.

Bereitstellen von Interopassemblys

Assemblys können starke Namen haben. Eine Assembly mit starkem Namen enthält den öffentlichen Schlüssel des Herausgebers und verfügt damit über eine eindeutige Identität. Mit dem Typbibliothekimporter (Tlbimp.exe) erstellte Assemblys, können vom Verleger mithilfe der /keyfile-Option signiert werden. Signierte Assemblys können im globalen Assemblycache installiert werden. Unsignierte Assemblys müssen auf dem Computer des Benutzers als private Assemblys installiert werden.

Private Assemblys

Zur Installation einer Assembly zur privaten Nutzung muss die EXE-Datei der Anwendung zusammen mit der Interop-Assembly, die die importierten COM-Typen enthält, in derselben Verzeichnisstruktur installiert werden. Die folgende Abbildung zeigt eine unsignierte Interop-Assembly zur privaten Nutzung durch Client1.exe und Client2.exe, die sich in separaten Anwendungsverzeichnissen befinden. Die Interop-Assembly in diesem Beispiel heißt LOANLib.dll und wird zweimal installiert.

Verzeichnisstruktur und Registrierungseinträge für eine private Bereitstellung

Verzeichnisstruktur und Windows-Registrierung

Alle mit der Anwendung verknüpften COM-Komponenten müssen in der Windows-Registrierung installiert werden. Wenn Client1.exe und Client2.exe (siehe Abbildung) auf verschiedenen Computern installiert werden, müssen die COM-Komponenten auf beiden Computern registriert werden.

Freigegebene Assemblys

Freigegebene, von mehreren Anwendungen gemeinsam verwendete Assemblys müssen in einem zentralen Repository installiert werden, dem so genannten globalen Assemblycache. Mehrere .NET-Clients können zeitgleich auf eine im globalen Assemblycache signierte und installierte Kopie der Interop-Assembly zugreifen. Weitere Informationen zum Erstellen und Verwenden von primären Interopassemblys finden Sie unter Primäre Interopassemblys.

Siehe auch

Konzepte

Verfügbarmachen von COM-Komponenten für .NET Framework

Importieren einer Typbibliothek als Assembly

Verwenden von COM-Typen in verwaltetem Code

Kompilieren eines Interop-Projekts