Condividi tramite


Informazioni sugli assemblaggi side-by-side

Un assemblaggio affiancato di Windows è descritto da manifesti. Un assembly side-by-side contiene una raccolta di risorse, ovvero un gruppo di DLL, classi Windows, server COM, librerie dei tipi o interfacce, che vengono sempre fornite alle applicazioni insieme. Questi sono descritti nel manifesto dell'assembly.

In genere, un assembly affiancato è una singola DLL. Ad esempio, l'assembly di Microsoft COMCTL32 è una singola DLL con un manifesto, mentre l'assembly di runtime delle librerie di runtime del sistema di sviluppo Microsoft Visual C++ contiene più file. I manifesti contengono metadati che descrivono assembly affiancati e le loro dipendenze.

Gli assembly side-by-side vengono usati dal sistema operativo come unità fondamentali di denominazione, associazione, controllo delle versioni, distribuzione e configurazione. Ogni assembly affiancata ha un'identità univoca. Uno degli attributi dell'identità dell'assembly è la relativa versione. Per ulteriori informazioni, vedere Versioni Assembly.

A partire da Windows XP, più versioni di assembly side-by-side possono essere usate contemporaneamente dalle applicazioni in esecuzione. I manifesti e il numero di versione dell'assembly vengono usati dal caricatore per determinare l'associazione corretta delle versioni dell'assembly alle applicazioni. Gli assembly e i manifesti side-by-side funzionano con le applicazioni e il gestore side-by-side, come illustrato nella figura seguente.

rappresentazione tipica dell'assembly side-by-side

Nell'esempio precedente, sia Comctl32.DLL versione 6.0 che Comctl32.DLL versione 5.0 si trovano nella cache degli assembly side-by-side e disponibili per le applicazioni. Quando un'applicazione chiama per caricare la DLL, il gestore side-by-side determina se l'applicazione ha una dipendenza della versione descritta in un file manifesto. Se non è presente alcun manifesto pertinente, il sistema carica la versione predefinita dell'assembly. Per Windows XP, la versione 5.0 di Comctl32.DLL è l'impostazione predefinita del sistema. Se il gestore side-by-side trova una dipendenza dalla versione 6.0 in un manifesto, tale versione viene caricata per l'esecuzione con l'applicazione.

Diversi assembly di sistema chiave vengono resi disponibili da Microsoft come assembly affiancati. Per ulteriori informazioni, vedere Assembly supportati side-by-side di Microsoft. Gli sviluppatori di applicazioni possono anche creare assembly side-by-side personalizzati. Per ulteriori informazioni, vedere le linee guida per la creazione di assembly affiancati. In molti casi è possibile aggiornare le applicazioni esistenti per usare assembly side-by-side senza dover modificare il codice dell'applicazione.

Gli sviluppatori sono invitati a usare assembly side-by-side per creare applicazioni isolate e aggiornare le applicazioni esistenti in applicazioni isolate per i motivi seguenti:

  • Gli assembly side-by-side riducono la possibilità di conflitti di versione della DLL (Dynamic Link Library).
  • La condivisione di assembly side-by-side consente l'esecuzione contemporaneamente di più versioni di assembly COM o Windows.
  • Le applicazioni e gli amministratori possono aggiornare la configurazione dell'assembly su base globale o per-application dopo la distribuzione. Ad esempio, un'applicazione può essere aggiornata per usare un assembly side-by-side che include un aggiornamento senza dover reinstallare l'applicazione.