Condividi tramite


Linee guida per la creazione di applicazioni e componenti per l'esecuzione affiancata di più versioni

Per creare applicazioni o componenti gestiti progettati per l'esecuzione affiancata, attenersi alle indicazioni generali riportate di seguito.

  • Associare l'identità del tipo a una determinata versione di un file.

    In Common Language Runtime, l'identità del tipo viene associata a una determinata versione di file mediante assembly con nome sicuro. Per creare un'applicazione o un componente per l'esecuzione affiancata, è necessario assegnare a tutti gli assembly un nome sicuro. In questo modo, viene creata una precisa identità del tipo e viene garantito che qualsiasi risoluzione del tipo verrà reindirizzata al file corretto. Un assembly con nome sicuro contiene informazioni sulla versione, sulle impostazioni cultura e sull'editore che vengono utilizzate dal runtime per individuare il file corretto in risposta a una richiesta di associazione.

  • Utilizzare l'archiviazione con supporto della versione.

    Per fornire l'archiviazione con supporto della versione, nel runtime viene utilizzata la Global Assembly Cache, che rappresenta una struttura di directory con supporto della versione che viene installata su qualsiasi computer in cui viene utilizzato .NET Framework. Gli assembly installati nella Global Assembly Cache non vengono sovrascritti in caso di installazione di una nuova versione dell'assembly.

  • Creare un'applicazione o un componente che viene eseguito in modalità isolata.

    Un'applicazione o un componente eseguito in modalità isolata deve essere in grado di gestire le risorse in modo da evitare conflitti quando due istanze dell'applicazione o del componente vengono eseguite contemporaneamente. L'applicazione o il componente deve inoltre utilizzare una struttura di file specifica della versione.

Isolamento di applicazioni e componenti

L'isolamento costituisce un fattore determinante per la corretta progettazione di un'applicazione o di un componente per l'esecuzione affiancata. L'applicazione o il componente deve essere in grado di gestire tutte le risorse, in particolare l'I/O di file, in modo isolato. Per assicurarsi che l'applicazione o il componente venga eseguito in modalità isolata, attenersi alle indicazioni riportate di seguito.

  • Scrivere i valori nel Registro di sistema in base alla versione. Archiviare i valori in hive o chiavi in cui viene indicata la versione e non condividere le informazioni o lo stato tra più versioni di un componente. Viene così impedita la sovrascrittura di informazioni da parte di due applicazioni eseguite contemporaneamente.

  • Impostare gli oggetti denominati del kernel in base alla versione, affinché non si verifichi una race condition. Una race condition si verifica ad esempio quando due semafori di due versioni della stessa applicazione si trovano in stato di reciproca attesa.

  • Utilizzare nomi di file e directory che tengono conto delle informazioni sulla versione. Le strutture di file devono essere basate sulle informazioni relative alla versione.

  • Creare account utente e gruppi in base alla versione. Gli account utente e i gruppi creati da un'applicazione devono essere identificati in base alla versione. Non condividere account utente e gruppi tra versioni diverse di un'applicazione.

Installazione e disinstallazione delle versioni

In occasione della progettazione di un'applicazione per l'esecuzione affiancata, attenersi alle seguenti indicazioni relative all'installazione e alla disinstallazione delle versioni:

  • Non eliminare dal Registro di sistema informazioni che potrebbero essere necessarie per altre applicazioni eseguite con una diversa versione di .NET Framework.

  • Non sostituire informazioni del Registro di sistema che potrebbero essere necessarie per altre applicazioni eseguite con una diversa versione di .NET Framework.

  • Non annullare la registrazione di componenti COM che potrebbero essere necessari per altre applicazioni eseguite con una diversa versione di .NET Framework.

  • Non modificare InprocServer32 o altre voci del Registro di sistema per un server COM già registrato.

  • Non eliminare account utente o gruppi che potrebbero essere necessari per altre applicazioni eseguite con una diversa versione di .NET Framework.

  • Non aggiungere nel Registro di sistema informazioni contenenti un percorso che non tenga conto della versione.

Numero di versione di file e assembly

La versione dei file costituisce una risorsa di versione Win32 non utilizzata dal runtime. In generale, la versione dei file viene aggiornata anche per QFE sul posto. Due file identici possono disporre di informazioni sulla versione del file diverse e due file diversi possono disporre delle stesse informazioni sulla versione del file.

La versione degli assembly viene utilizzata dal runtime per l'associazione di assembly. Due assembly identici con numeri di versione diversi vengono gestiti dal runtime come due assembly diversi.

Lo strumento Global Assembly Cache (Gacutil.exe) consente di sostituire un assembly quando solo il numero di versione del file è più recente. Windows Installer in genere non esegue l'installazione su un assembly a meno che il numero di versione dell'assembly non sia superiore.

Vedere anche

Concetti

Esecuzione affiancata di diverse versioni

Reindirizzamento delle versioni di assembly

Determinazione di una strategia di manutenzione per applicazioni e componenti

Altre risorse

Creazione di più versioni di un'applicazione o componente