Partager via


Application d'attributs dépendants de la version

Si vous utilisez le .NET Framework 1.1 et versions ultérieures, vous pouvez appliquer des attributs au moment du design à du code source managé pour une activation appropriée des types inscrits dans le Registre Windows. Cette rubrique explique quand appliquer les attributs ComCompatibleVersionAttribute et TypeLibVersionAttribute.

GUID générés contreGUID fixes

Type Library Exporter (Tlbexp.exe) (exportateur de bibliothèques de types) et l'outil Assembly Registration Tool (Regasm.exe) avec l'option /tlb génèrent des identificateurs de classe (CLSID) basés sur le numéro de version d'un assembly exporté pour être utilisé par COM. Chaque nouvelle version d'un assembly que vous exportez contient des CLSID qui sont uniques pour cette version d'assembly. Une application COM utilise le CLSID pour identifier une classe lors de l'appel de la méthode CoCreateInstance.

Ce comportement est utile lorsqu'une nouvelle version d'un assembly est incompatible avec des versions précédentes. Par exemple, si un ou plusieurs types sont supprimés du nouvel assembly, la nouvelle version et les versions précédentes sont incompatibles.

RemarqueRemarque

Contrairement aux CLSID, les identificateurs programmatiques (ProgID) ne changent pas avec chaque nouvelle version d'un assembly.Vous devez appliquer ProgIdAttribute afin de modifier manuellement un ProgID lorsque vous générez un nouvel assembly incompatible.

Cependant, de nombreux assemblys sont compatibles avec les versions précédentes et leurs développeurs s'attendent à ce que les applications utilisent la dernière version. En conservant les mêmes CLSID dans les différentes versions d'un assembly (à l'aide de GUID fixes), les applications COM existantes peuvent utiliser des types dans la nouvelle version d'un assembly sans que la disponibilité de l'ancien assembly soit nécessaire et sans recompiler.

ComCompatibleVersionAttribute force tous les CLSID de la version actuelle d'un assembly à être identiques aux CLSID d'une version précédente. Pour plus d'informations sur la façon d'appliquer cet attribut, consultez la documentation de référence de ComCompatibleVersionAttribute.

Versions d'une bibliothèque de types

Le numéro de version d'une bibliothèque de types contient les numéros des versions principale et secondaire de l'assembly utilisé pour le générer. Par contre, le numéro de version d'un assembly se compose de quatre éléments. Deux versions d'assembly complètement différentes (1.0.0.0 et 1.2.500.0) génèrent automatiquement des versions de bibliothèque de types différentes (1.0 et 1.2) ; cependant, des versions d'incrémentation plus proche (1.2.0.0 et 1.2.500.0) produisent la même version de bibliothèque de types (1.2) lors d'une exportation pour une utilisation par COM.

TypeLibraryVersionAttribute vous permet de spécifier le numéro de version d'une bibliothèque de types de manière explicite dans du code source managé. Pour plus d'informations sur la façon d'utiliser cet attribut, consultez la documentation de référence de TypeLibVersionAttribute.

Voir aussi

Concepts

Initialisation du runtime à partir d'une application COM

Clés de Registre dépendantes de la version

Configuration d'une application COM pour une exécution côte à côte

Composants COM et exécution côte à côte

Autres ressources

Exécution côte à côte pour COM Interop