Global Assembly Cache

Aggiornamento: novembre 2007

Ogni computer in cui è installato Common Language Runtime dispone di una cache del codice a livello di macchina denominata Global Assembly Cache. Nella Global Assembly Cache vengono archiviati gli assembly che verranno utilizzati da più applicazioni presenti sul computer.

Gli assembly devono essere installati nella Global Assembly Cache solo quando è necessario condividerli. È consigliabile mantenere private le dipendenze degli assembly e inserire gli assembly nella directory dell'applicazione, a meno che non vi sia la specifica esigenza di condividerli. Non è inoltre necessario installare assembly nella Global Assembly Cache per renderli accessibili all'interoperabilità COM o al codice gestito.

Nota:

In alcune situazioni si preferisce non installare un assembly nella Global Assembly Cache. Se si inserisce nella Global Assembly Cache uno degli assembly che costituiscono un'applicazione, non sarà più possibile replicare o installare l'applicazione copiando la relativa directory con il comando xcopy. Occorrerà infatti spostare anche l'assembly contenuto nella Global Assembly Cache.

Un assembly può essere posto nella Global Assembly Cache in più modi:

  • Utilizzando un programma di installazione in grado di gestire la Global Assembly Cache. Questa è la soluzione più indicata.

  • Utilizzando uno strumento di sviluppo denominato strumento Global Assembly Cache (Gacutil.exe), fornito con Windows Software Development Kit (SDK).

  • Utilizzando Esplora risorse per trascinare gli assembly nella cache.

    Nota:

    Ai fini della distribuzione, per installare gli assembly nella Global Assembly Cache è necessario utilizzare Windows Installer 2.0. Esplora risorse o lo strumento Global Assembly Cache vanno utilizzati solo in scenari di sviluppo. Essi infatti non forniscono il conteggio dei riferimenti agli assembly e altre funzionalità offerte invece da Windows Installer.

La directory systemroot viene spesso protetta dagli amministratori tramite un elenco di controllo di accesso (ACL, Access Control List) che consente di controllare l'accesso in lettura e in esecuzione. Poiché la Global Assembly Cache è installata in una sottodirectory della directory systemroot, ne eredita l'elenco di controllo di accesso. Si consiglia di consentire l'eliminazione di file dalla Global Assembly Cache solo agli utenti che dispongono di privilegi di amministratore.

È necessario che gli assembly distribuiti nella Global Assembly Cache abbiano un nome sicuro. Quando si aggiunge un assembly alla Global Assembly Cache, viene verificata l'integrità di tutti i file che lo costituiscono. Tale controllo viene svolto dalla cache per accertare che l'assembly non sia stato compromesso, ad esempio per l'eventualità in cui un file sia stato modificato e il manifesto non rispecchi tale modifica.

Vedere anche

Concetti

Assembly con nomi sicuri

Altre risorse

Assembly in Common Language Runtime

Utilizzo di assembly e della Global Assembly Cache