Utilizzo di assembly e della Global Assembly CacheWorking with Assemblies and the Global Assembly Cache

Se si vuole condividere un assembly tra diverse applicazioni, è possibile installarlo nella Global Assembly Cache.If you intend to share an assembly among several applications, you can install it into the global assembly cache. Tale cache di codice a livello di computer si trova su ogni computer in cui è installato Common Language Runtime.Each computer where the common language runtime is installed has this machine-wide code cache. La Global Assembly Cache memorizza gli assembly specificamente designati per essere condivisi da più applicazioni sul computer.The global assembly cache stores assemblies specifically designated to be shared by several applications on the computer. L'assembly deve avere un nome sicuro per essere installato nella Global Assembly Cache.An assembly must have a strong name to be installed in the 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.Assemblies placed in the global assembly cache must have the same assembly name and file name (not including the file name extension). Ad esempio, un assembly con il nome assembly myAssembly deve avere un nome di file myAssembly.exe o myAssembly.dll.For example, an assembly with the assembly name of myAssembly must have a file name of either myAssembly.exe or myAssembly.dll.

Per condividere gli assembly, installarli nella Global Assembly Cache solo quando è necessario.You should share assemblies by installing them into the global assembly cache only when necessary. 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.As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. Non è necessario installare gli assembly nella Global Assembly Cache per renderli accessibili al codice non gestito o all'interoperabilità COM.In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code.

Esistono diverse ragioni per cui installare un assembly nella Global Assembly Cache:There are several reasons why you might want to install an assembly into the global assembly cache:

  • Percorso condiviso.Shared location.

    Gli assembly che devono essere usati dalle applicazioni possono essere inseriti nella Global Assembly Cache.Assemblies that should be used by applications can be put in the 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.For example, if all applications should use an assembly located in the global assembly cache, a version policy statement can be added to the Machine.config file that redirects references to the assembly.

  • Sicurezza dei file.File security.

    Gli amministratori spesso proteggono la directory systemroot usando un elenco di controllo di accesso (ACL) per controllare l'accesso in scrittura ed esecuzione.Administrators often protect the systemroot directory using an Access Control List (ACL) to control write and execute access. Poiché la Global Assembly Cache viene installata nella directory systemroot, eredita l'ACL di tale directory.Because the global assembly cache is installed in the systemroot directory, it inherits that directory's ACL. È consigliabile che solo gli utenti con privilegi di amministratore siano autorizzati a eliminare file dalla Global Assembly Cache.It is recommended that only users with Administrator privileges be allowed to delete files from the global assembly cache.

  • Controllo delle versioni side-by-side.Side-by-side versioning.

    Nella Global Assembly Cache possono essere gestite più copie di assembly con lo stesso nome ma con informazioni di versione diverse.Multiple copies of assemblies with the same name but different version information can be maintained in the global assembly cache.

  • Altri percorsi di ricerca.Additional search location.

    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.The common language runtime checks the global assembly cache for an assembly that matches the assembly request before probing or using the codebase information in a configuration file.

Si noti che esistono scenari in cui si sceglie in modo esplicito di non installare un assembly nella Global Assembly Cache.Note that there are scenarios where you explicitly do not want to install an assembly into the 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.If you place one of the assemblies that make up an application into the global assembly cache, you can no longer replicate or install the application by using XCOPY to copy the application directory. In questo caso è necessario anche spostare l'assembly nella Global Assembly Cache.In this case, you must also move the assembly into the global assembly cache.

In questa sezioneIn This Section

Procedura: Installare un assembly nella Global Assembly CacheHow to: Install an Assembly into the Global Assembly Cache
Vengono descritte le modalità di installazione di un assembly nella Global Assembly Cache.Describes the ways to install an assembly into the global assembly cache.

Procedura: Visualizzare il contenuto della Global Assembly CacheHow to: View the Contents of the Global Assembly Cache
Illustra come usare lo strumento Global Assembly Cache (Gacutil.exe) per visualizzare i contenuti della Global Assembly Cache.Explains how to use the Gacutil.exe (Global Assembly Cache Tool) to view the contents of the global assembly cache.

Procedura: Rimuovere un assembly dalla Global Assembly CacheHow to: Remove an Assembly from the Global Assembly Cache
Illustra come usare lo strumento Global Assembly Cache (Gacutil.exe) per rimuovere un assembly dalla Global Assembly Cache.Explains how to use the Gacutil.exe (Global Assembly Cache Tool) to remove an assembly from the global assembly cache.

Uso dei componenti serviti con la Global Assembly CacheUsing Serviced Components with the Global Assembly Cache
È consigliabile inserire nella Global Assembly Cache i componenti serviti (componenti COM+ di codice gestito).Explains why serviced components (managed COM+ components) should be placed in the global assembly cache.

Creazione degli assemblyCreating Assemblies
Offre una panoramica della creazione di assembly.Provides an overview of creating assemblies.

Global Assembly CacheGlobal Assembly Cache
Descrive la Global Assembly Cache.Describes the global assembly cache.

Procedura: Visualizzare il contenuto dell'assemblyHow to: View Assembly Contents
Illustra come usare Ildasm.exe (Disassembler IL) per visualizzare le informazioni di Microsoft Intermediate Language (MSIL) in un assembly.Explains how to use the Ildasm.exe (IL Disassembler) to view Microsoft intermediate language (MSIL) information in an assembly.

Come il runtime individua gli assemblyHow the Runtime Locates Assemblies
Descrive in che modo Common Language Runtime individua e carica gli assembly che costituiscono l'applicazione.Describes how the common language runtime locates and loads the assemblies that make up your application.

Programmazione con gli assemblyProgramming with Assemblies
Descrive gli assembly, i blocchi predefiniti delle applicazioni gestite.Describes assemblies, the building blocks of managed applications.