Anwenden versionsabhängiger Attribute
Wenn Sie .NET Framework Version 1.1 und höher verwenden, können Sie Entwurfszeitattribute auf verwalteten Quellcode anwenden, um die in der Windows-Registrierung registrierten Typen ordnungsgemäß zu aktivieren. In diesem Thema wird beschrieben, wann das ComCompatibleVersionAttribute-Attribut und das TypeLibVersionAttribute-Attribut anzuwenden sind.
Generierte undfeste GUIDs
Der Typbibliothekimporter (Tlbexp.exe) und das Assemblyregistrierungstool (Regasm.exe) generieren in Verbindung mit der Option /tlb Klassenbezeichner (CLSID) auf Grundlage der Versionsnummer einer Assembly, die für die Verwendung durch COM exportiert wurde. Jede neue Version einer exportierten Assembly enthält CLSIDs, die für diese Assemblyversion eindeutig sind. In einer COM-Anwendung wird mit einer CLSID beim Aufrufen der CoCreateInstance-Methode eine Klasse gekennzeichnet.
Dieses Verhalten ist besonders dann nützlich, wenn eine neue Assemblyversion nicht mit früheren Versionen kompatibel ist. Alte und neue Versionen werden z. B. inkompatibel, wenn ein oder mehrere Typen aus der neuen Assembly entfernt werden.
Hinweis |
---|
Im Gegensatz zu CLSIDs werden Programmbezeichner (ProgIDs) nicht bei jeder neuen Version einer Assembly geändert.Sie sollten das ProgIdAttribute anwenden, um eine ProgID manuell zu ändern, wenn Sie eine neue, inkompatible Assembly erstellen. |
Viele Assemblys sind aber mit früheren Versionen kompatibel, wobei die Entwickler davon ausgehen, dass Anwendungen die jeweils aktuellste Version verwenden. Wenn Sie dieselben CLSIDs für mehrere Assemblyversionen beibehalten (mithilfe fester GUIDs), können vorhandene COM-Anwendungen die Typen in der neuen Version einer Assembly verwenden, ohne dass die alte Version verfügbar sein muss und ohne dass eine erneute Kompilierung erforderlich ist.
ComCompatibleVersionAttribute erzwingt, dass alle CLSIDs in der aktuellen Assemblyversion mit den CLSIDs früherer Versionen identisch sind. Weitere Informationen über die Anwendung dieses Attributs finden Sie in der Referenzdokumentation zu ComCompatibleVersionAttribute.
Typbibliotheksversionen
Die Versionsnummer einer Typbibliothek enthält die Haupt- und Nebenversionsnummern der Assembly, aus der sie erstellt wurde. Die Versionsnummer einer Assembly besteht dagegen aus vier Teilen. Zwei vollständig unterschiedliche Assemblyversionen (1.0.0.0 und 1.2.500.0) generieren automatisch unterschiedliche Typbibliotheksversionen (1.0 und 1.2). Bei zwei Versionen mit geringeren Abweichungen bei der Versionsnummer (1.2.0.0 und 1.2.500.0) wird dagegen dieselbe Typbibliotheksversion (1.2) erstellt, wenn sie für die Verwendung durch COM exportiert werden.
TypeLibraryVersionAttribute ermöglicht das explizite Angeben einer Versionsnummer für die Typbibliothek im verwalteten Quellcode. Weitere Informationen zur Verwendung dieses Attributs finden Sie in der Referenzdokumentation zu TypeLibVersionAttribute.
Siehe auch
Konzepte
Laufzeitinitialisierung aus einer COM-Anwendung
Versionsabhängige Registrierungsschlüssel
Konfigurieren einer COM-Anwendung für die parallele Ausführung
COM-Komponenten und parallele Ausführung