Applicazione di attributi dipendenti dalla versione

Se si utilizza .NET Framework versione 1.1, è possibile applicare attributi della fase di progettazione al codice sorgente gestito per una corretta attivazione dei tipi registrati nel Registro di sistema di Windows. Nel presente argomento viene descritto quando applicare gli attributi ComCompatibleVersionAttribute e TypeLibVersionAttribute.

GUID fissi e generati

Mediante l'utilità di esportazione della libreria dei tipi (Tlbexp.exe) e lo strumento di registrazione degli assembly (Regasm.exe) con l'opzione /tlb vengono generati identificatori di classe (CLSID, Class Identifier) basati sul numero di versione di un assembly esportato per l'utilizzo con COM. Ciascuna nuova versione di un assembly esportato contiene CLSID univoci per tale versione dell'assembly. Il CLSID viene utilizzato da un'applicazione COM per identificare una classe quando viene richiamato il metodo CoCreateInstance.

Questo comportamento si rivela utile quando una nuova versione dell'assembly non è compatibile con le versioni precedenti. In caso di rimozione di uno o più tipi dal nuovo assembly, ad esempio, la nuova versione e quelle precedenti sono incompatibili.

Nota

A differenza dei CLSID, gli identificatori a livello di codice (ProgID, Programmatic Identifier) non vengono modificati con ogni nuova versione di un assembly. Quando si crea un nuovo assembly incompatibile, è opportuno applicare ProgIdAttribute per modificare manualmente un ProgID.

Numerosi assembly sono comunque compatibili con le precedenti versioni ed è previsto che nelle applicazioni venga utilizzata la versione più recente. Mantenendo gli stessi CLSID in più versioni dell'assembly, mediante GUID fissi, le applicazioni COM esistenti possono utilizzare i tipi della nuova versione di un assembly senza richiedere la disponibilità dell'assembly precedente e la ricompilazione.

ComCompatibleVersionAttribute impone l'esatta corrispondenza di tutti i CLSID della versione dell'assembly corrente con i CLSID di una versione precedente. Per ulteriori informazioni sull'applicazione di questo attributo, vedere la documentazione di riferimento relativa a ComCompatibleVersionAttribute.

Versioni della libreria dei tipi

Il numero di versione di una libreria dei tipi contiene i numeri principale e secondario dell'assembly utilizzato per la relativa creazione. Il numero di versione di un assembly è invece costituito da quattro parti. Due versioni di assembly completamente diverse (1.0.0.0 and 1.2.500.0) determinano automaticamente la creazione di versioni diverse della libreria dei tipi (1.0 e 1.2). Quando vengono esportate per l'utilizzo con COM, tuttavia, le versioni con incremento ridotto (1.2.0.0 e 1.2.500.0) genereranno entrambe la stessa versione della libreria dei tipi (1.2).

TypeLibraryVersionAttribute consente di specificare un numero di versione della libreria dei tipi in modo esplicito nel codice sorgente gestito. Per ulteriori informazioni sull'utilizzo di questo attributo, vedere la documentazione di riferimento relativa a TypeLibVersionAttribute.

Vedere anche

Concetti

Inizializzazione del runtime da un'applicazione COM
Chiavi del Registro di sistema dipendenti dalla versione
Configurazione di un'applicazione COM per l'esecuzione affiancata
Componenti COM ed esecuzione affiancata

Altre risorse

Esecuzione side-by-side per l'interoperabilità COM