Utilizzo di assembly e della cache di assembly globale

Se si desidera condividere un assembly con più applicazioni, è possibile installare tale assembly nella cache di assembly globale. Questa cache di codice su computer è disponibile in ogni computer in cui è installato Common Language Runtime e consente di memorizzare assembly che, per una precisa scelta di sviluppo, verranno utilizzati da più applicazioni presenti nel computer. Per essere installato nella cache di assembly globale, è necessario che un assembly disponga di un nome sicuro.

Nota   È necessario che il nome di assembly e il nome file (esclusa l'estensione di nome file) degli assembly inseriti nella cache di assembly globale corrispondano. È ad esempio necessario che a un assembly con nome assembly myAssembly sia assegnato un nome file myAssembly.exe o myAssembly.dll.

Si consiglia di condividere gli assembly installandoli nella cache di assembly globale solo quando necessario. È 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 di assembly globale per renderli accessibili all'interoperabilità COM o al codice gestito.

Numerose sono le ragioni per l'installazione di un assembly nella cache di assembly globale:

  • Posizione condivisa.

    È possibile inserire nella cache di assembly globale gli assembly che vengono utilizzati dalle applicazioni. Se ad esempio tutte le applicazioni utilizzano un assembly inserito nella cache di assembly globale, è possibile aggiungere un'istruzione relativa ai criteri di versione nel file Machine.config che reindirizza i riferimenti all'assembly.

  • Protezione dei file.

    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 di assembly globale è installata nella directory WINNT, eredita l'elenco di controllo di accesso di tale directory. Si consiglia di consentire la cancellazione di file dalla cache di assembly globale solo agli utenti che dispongono di privilegi di amministratore.

  • Gestione di più versioni.

    Nella cache di assembly globale è possibile mantenere più copie di assembly con lo stesso nome ma con informazioni relative alla versione diverse.

  • Posizione di ricerca aggiuntiva.

    Prima di effettuare ricerche o utilizzare le informazioni relative al codice presenti in un file di configurazione, Common Language Runtime cerca nella cache di assembly locale un assembly corrispondente alla richiesta di assembly.

Si noti che sono possibili scenari in cui non si desideri esplicitamente installare un assembly nella cache di assembly globale. Se si inserisce nella cache di assembly globale uno degli assembly che costituiscono un'applicazione, non sarà più possibile replicare o installare l'applicazione utilizzando XCOPY per copiare la directory dell'applicazione. In questo caso è necessario spostare anche l'assembly nella cache di assembly globale.

Vedere anche

Creazione degli assembly | Cache globale degli assembly | Installazione di un assembly nella cache di assembly globale | Visualizzazione dei contenuti della cache di assembly globale | Rimozione di un assembly dalla cache di assembly globale | Utilizzo dei componenti serviti con la cache di assembly globale | Visualizzazione dei contenuti dell'assembly | Come il runtime individua gli assembly | Programmazione con gli assembly