Cache globale degli assembly

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

Gli assembly devono essere installati nella cache globale degli assembly 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 cache globale degli assembly per renderli accessibili all'interoperabilità COM o al codice gestito.

Nota   Vi sono casi in cui si desidera non installare un assembly nella cache globale degli assembly. Se si inserisce nella cache globale degli assembly 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 cache globale degli assembly.

Un assembly può essere posto nella cache globale degli assembly in più modi:

  • Utilizzando un programma di installazione in grado di gestire la cache globale degli assembly. Questa è la soluzione più indicata.

  • Utilizzando uno strumento di sviluppo denominato strumento Cache assembly globale (Gacutil.exe), fornito con .NET Framework SDK.

  • Utilizzando Esplora risorse per trascinare gli assembly nella cache.

    Nota   Ai fini della distribuzione, per installare gli assembly nella cache globale degli assembly occorre utilizzare Windows Installer 2.0. Esplora risorse o lo strumento Cache assembly globale 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 WINNT viene spesso protetta dagli amministratori tramite un elenco di controllo di accesso (ACL, Access Control List), che consente di controllare l'accesso di lettura e di esecuzione. Poiché la cache globale degli assembly è installata nella directory WINNT, eredita l'elenco di controllo di accesso di tale directory. Si consiglia di consentire la cancellazione di file dalla cache globale degli assembly solo agli utenti che dispongono di privilegi di amministratore.

È necessario che gli assembly distribuiti nella cache globale degli assembly abbiano un nome sicuro. Quando si aggiunge un assembly alla cache globale degli assembly, 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

Assembly | Utilizzo di assembly e della cache di assembly globale | Assembly con nomi sicuri