Uso di assembly e della Global Assembly Cache

Se si vuole condividere un assembly tra diverse applicazioni, è possibile installarlo nella Global Assembly Cache. Tale cache di codice a livello di computer si trova su ogni computer in cui è installato Common Language Runtime. La Global Assembly Cache memorizza gli assembly specificamente designati per essere condivisi da più applicazioni sul computer. L'assembly deve avere un nome sicuro per essere installato nella Global Assembly Cache.

Nota

Gli assembly nella Global Assembly Cache devono avere lo stesso nome di assembly e lo stesso nome di file, ad esclusione dell'estensione del nome del file. Ad esempio, un assembly con il nome assembly myAssembly deve avere un nome di file myAssembly.exe o myAssembly.dll.

Per condividere gli assembly, installarli nella Global Assembly Cache solo quando è necessario. Come regola generale, mantenere le dipendenze degli assembly private e individuare gli assembly nella directory dell'applicazione, a meno che la condivisione di un assembly non venga richiesta in modo esplicito. Non è necessario installare gli assembly nella Global Assembly Cache per renderli accessibili al codice non gestito o all'interoperabilità COM.

Esistono diverse ragioni per cui installare un assembly nella Global Assembly Cache:

  • Percorso condiviso.

    Gli assembly che devono essere usati dalle applicazioni possono essere inseriti nella Global Assembly Cache. Ad esempio, se tutte le applicazioni devono usare un assembly nella Global Assembly Cache, è possibile aggiungere un'istruzione di criteri di versione al file Machine.config che reindirizza i riferimenti all'assembly.

  • Sicurezza dei file.

    Gli amministratori spesso proteggono la directory systemroot usando un elenco di controllo di accesso (ACL) per controllare l'accesso in scrittura ed esecuzione. Poiché la Global Assembly Cache viene installata nella directory systemroot, eredita l'ACL di tale directory. È consigliabile che solo gli utenti con privilegi di amministratore siano autorizzati a eliminare file dalla Global Assembly Cache.

  • Controllo delle versioni side-by-side.

    Nella Global Assembly Cache possono essere gestite più copie di assembly con lo stesso nome ma con informazioni di versione diverse.

  • Altri percorsi di ricerca.

    Common language runtime cerca nella Global Assembly Cache un assembly che corrisponda alla richiesta di assembly prima di effettuare l'esecuzione del probe o usare le informazioni della base di codici in un file di configurazione.

Si noti che esistono scenari in cui si sceglie in modo esplicito di non installare un assembly nella Global Assembly Cache. Se si inserisce uno degli assembly che costituiscono un'applicazione nella Global Assembly Cache, non sarà più possibile replicare o installare l'applicazione usando il comando XCOPY per copiare la directory dell'applicazione. In questo caso è necessario anche spostare l'assembly nella Global Assembly Cache.

In questa sezione

Procedura: Installare un assembly nella Global Assembly Cache
Vengono descritte le modalità di installazione di un assembly nella Global Assembly Cache.

Procedura: Visualizzare il contenuto della Global Assembly Cache
Illustra come usare lo strumento Global Assembly Cache (Gacutil.exe) per visualizzare i contenuti della Global Assembly Cache.

Procedura: Rimuovere un assembly dalla Global Assembly Cache
Illustra come usare lo strumento Global Assembly Cache (Gacutil.exe) per rimuovere un assembly dalla Global Assembly Cache.

Uso dei componenti serviti con la Global Assembly Cache
È consigliabile inserire nella Global Assembly Cache i componenti serviti (componenti COM+ di codice gestito).

Creazione degli assembly
Offre una panoramica della creazione di assembly.

Global Assembly Cache
Descrive la Global Assembly Cache.

Procedura: Visualizzare il contenuto dell'assembly
Illustra come usare Ildasm.exe (Disassembler IL) per visualizzare le informazioni di Microsoft Intermediate Language (MSIL) in un assembly.

Come il runtime individua gli assembly
Descrive in che modo Common Language Runtime individua e carica gli assembly che costituiscono l'applicazione.

Programmazione con gli assembly
Descrive gli assembly, i blocchi predefiniti delle applicazioni gestite.