Verpacken einer Assembly für COM
Aktualisiert: November 2007
Folgende Informationen über verwaltete Typen, die in Anwendungen eingebunden werden sollen, sind für COM-Entwickler von Nutzen:
Eine Liste mit allen Typen, die von COM-Anwendungen verarbeitet werden können.
Einige der verwalteten Typen werden in COM nicht angezeigt; andere können angezeigt, aber nicht erstellt werden; wieder andere können sowohl angezeigt als auch erstellt werden. In einer Assembly können alle Kombinationen von unsichtbaren, sichtbaren, erstellbaren und nicht erstellbaren Typen enthalten sein. Der Vollständigkeit halber identifizieren Sie die Typen in einer Assembly, die Sie in COM verfügbar machen möchten. Dies ist insbesondere dann wichtig, wenn es sich bei diesen Typen um eine Teilmenge der Typen handelt, die in .NET Framework zugänglich sind.
Weitere Informationen finden Sie unter Qualifizieren von .NET-Typen für die Interoperation.
Anweisungen zum Versioning
Verwaltete Klassen, welche die Klassenschnittstelle (eine von COM-Interop generierte Schnittstelle) implementieren, unterliegen Beschränkungen beim Versioning.
Die Richtlinien zum Verwenden der Klassenschnittstelle finden Sie unter Einführung in die Klassenschnittstelle.
Anweisungen zur Bereitstellung
Assemblys mit starken Namen und der Signatur des Herausgebers können im globalen Assemblycache installiert werden. Unsignierte Assemblys müssen auf dem Computer des Benutzers als private Assemblys installiert werden.
Weitere Informationen finden Sie unter Überlegungen zur Assemblysicherheit.
Einbindung der Typbibliothek
Für die meisten Typen ist eine Typbibliothek erforderlich, damit sie von einer COM-Anwendung verarbeitet werden können. Eine Typbibliothek können Sie selbst generieren oder von einem COM-Entwickler erstellen lassen. Windows Software Development Kit (SDK) bietet die folgenden Optionen zum Generieren einer Typbibliothek:
Type Library Exporter-Tool
TypeLibConverter-Klasse
Assembly Registration-Tool
.NET Services Installation-Tool
Unabhängig davon, welchen Mechanismus Sie wählen, werden nur die öffentlichen Typen in die generierte Typbibliothek aufgenommen, die in der von Ihnen bereitgestellten Assembly definiert sind.
Sie können eine Typbibliothek als separate Datei packen oder als Win32-Ressourcendatei in eine .NET-basierte Anwendung einbetten. Microsoft Visual Basic 6.0 führt diese Aufgabe automatisch aus. Wenn Sie jedoch Microsoft Visual Basic 2005 verwenden, müssen Sie die Typbibliothek manuell einbetten. Anweisungen finden Sie unter Gewusst wie: Einbetten von Typbibliotheken als Win32-Ressourcen in .NET-Anwendungen.
Type Library Exporter-Tool
Mit dem Befehlszeilentool Type Library Exporter (Tlbexp.exe) können Sie Klassen und Schnittstellen, die in einer Assembly enthalten sind, in eine COM-Typbibliothek konvertieren. Sobald die Typinformationen der Klasse verfügbar sind, können die COM-Clients eine Instanz der .NET-Klasse erstellen und die Methoden der Instanz aufrufen, als wäre es ein COM-Objekt. Mit Tlbexp.exe wird eine vollständige Assembly auf einmal konvertiert. Sie können mit Tlbexp.exe keine Typinformationen für einen Teil der in der Assembly definierten Typen generieren.
TypeLibConverter-Klasse
Mit der im System.Runtime.Interop-Namespace enthaltenen TypeLibConverter-Klasse werden die in einer Assembly enthaltenen Klassen und Schnittstellen in eine COM-Typbibliothek konvertiert. Mit dieser API werden dieselben Typinformationen erstellt wie mit dem im vorherigen Abschnitt beschriebenen Type Library Exporter-Tool.
Die TypeLibConverter-Klasse implementiert die ItypeLibConverter-Schnittstelle.
Assembly Registration-Tool
Mit dem Assembly Registration-Tool (Regasm.exe) können Sie eine Typbibliothek generieren und registrieren, wenn Sie die /tlb:-Option anwenden. Für COM-Clients müssen die Typbibliotheken in der Windows-Registrierung installiert werden. Ohne diese Option registriert Regasm.exe die Typen nur in einer Assembly, nicht in der Typbibliothek. Das Registrieren von Typen in einer Assembly und das Registrieren der Typbibliothek sind verschiedene Aktivitäten.
.NET Services Installation-Tool
Mit dem .NET Services Installation-Tool (Regsvcs.exe) werden verwaltete Klassen zum Windows 2000-Komponentendienst hinzugefügt und mehrere Aufgaben in einem einzelnen Tool kombiniert. Zusätzlich zum Laden und Registrieren der Assembly kann mithilfe von Regsvcs.exe auch die Typbibliothek generiert, registriert und in einer vorhandenen COM+ 1.0-Anwendung installiert werden.
Siehe auch
Aufgaben
Gewusst wie: Einbetten von Typbibliotheken als Win32-Ressourcen in .NET-Anwendungen
Konzepte
Verfügbarmachen von .NET Framework-Komponenten in COM
Qualifizieren von .NET-Typen für die Interoperation
Einführung in die Klassenschnittstelle
Überlegungen zur Assemblysicherheit
Registrieren von Assemblys mit COM