Gacutil.exe (strumento Global Assembly Cache)Gacutil.exe (Global Assembly Cache Tool)

Lo strumento Global Assembly Cache consente di visualizzare e modificare il contenuto della Global Assembly Cache e della Download Cache.The Global Assembly Cache tool allows you to view and manipulate the contents of the global assembly cache and download cache.

Viene installato automaticamente con Visual Studio.This tool is automatically installed with Visual Studio. Per eseguire lo strumento, usare il Prompt dei comandi per gli sviluppatori per Visual Studio (o il prompt dei comandi di Visual Studio in Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Per altre informazioni, vedere Prompt dei comandi.For more information, see Command Prompts.

Al prompt dei comandi digitare quanto segue:At the command prompt, type the following:

SintassiSyntax

gacutil [options] [assemblyName | assemblyPath | assemblyListFile]

ParametriParameters

ArgomentoArgument DescrizioneDescription
assemblyNameassemblyName Nome di un assembly.The name of an assembly. È possibile fornire un nome di assembly parzialmente specificato, quale myAssembly, o un nome di assembly completo, quale myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5.You can supply either a partially specified assembly name such as myAssembly or a fully specified assembly name such as myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5.
assemblyPathassemblyPath Nome di un file contenente il manifesto di un assembly.The name of a file that contains an assembly manifest.
assemblyListFileassemblyListFile Percorso di un file di testo ANSI che elenca gli assembly da installare o disinstallare.The path to an ANSI text file that lists assemblies to install or uninstall. Per usare un file di testo per installare assembly, specificare il percorso di ciascun assembly in una riga separata del file.To use a text file to install assemblies, specify the path to each assembly on a separate line in the file. I percorsi relativi vengono interpretati rispetto alla posizione di assemblyListFile.The tool interprets relative paths, relative to the location of the assemblyListFile. Per utilizzare un file di testo per disinstallare assembly, specificare il nome completo di ogni assembly in una riga separata del file.To use a text file to uninstall assemblies, specify the fully qualified assembly name for each assembly on a separate line in the file. Vedere gli esempi di contenuto di assemblyListFile più avanti in questo argomento.See the assemblyListFile contents examples later in this topic.
OpzioneOption DESCRIZIONEDescription
/cdl/cdl Elimina il contenuto della Download Cache.Deletes the contents of the download cache.
/f/f Specificare questa opzione con le opzioni /i o /i per forzare la reinstallazione di un assembly.Specify this option with the /i or /il options to force an assembly to reinstall. Se un assembly con lo stesso nome esiste già nella Global Assembly Cache, verrà sovrascritto.If an assembly with the same name already exists in the global assembly cache, the tool overwrites it.
/h[elp]/h[elp] Visualizza la sintassi e le opzioni di comando dello strumento.Displays command syntax and options for the tool.
/i assemblyPath/i assemblyPath Installa un assembly nella Global Assembly Cache.Installs an assembly into the global assembly cache.
/if assemblyPath/if assemblyPath Installa un assembly nella Global Assembly Cache.Installs an assembly into the global assembly cache. Se un assembly con lo stesso nome esiste già nella Global Assembly Cache, verrà sovrascritto.If an assembly with the same name already exists in the global assembly cache, the tool overwrites it.

Specificare questa opzione equivale a specificare contemporaneamente le opzioni /i e /f.Specifying this option is equivalent to specifying the /i and /f options together.
/il assemblyListFile/il assemblyListFile Installa uno o più assembly specificati in assemblyListFile nella Global Assembly Cache.Installs one or more assemblies specified in assemblyListFile into the global assembly cache.
/ir assemblyPath/ir assemblyPath

schemescheme

idid

descriptiondescription
Installa un assembly nella Global Assembly Cache e aggiunge un riferimento per contare l'assembly.Installs an assembly into the global assembly cache and adds a reference to count the assembly. Con questa opzione è necessario specificare i parametri assemblyPath, scheme, id e description.You must specify the assemblyPath, scheme, id,and description parameters with this option. Per una descrizione dei valori validi che è possibile specificare per questi parametri, vedere l'opzione /r.For a description of the valid values you can specify for these parameters, see the /r option.

Specificare questa opzione equivale a specificare contemporaneamente le opzioni /i e /r.Specifying this option is equivalent to specifying the /i and /r options together.
/l [assemblyName]/l [assemblyName] Elenca il contenuto della Global Assembly Cache.Lists the contents of the global assembly cache. Se si specifica il parametro assemblyName, lo strumento elenca solo gli assembly che corrispondono a quel nome.If you specify the assemblyName parameter, the tool lists only the assemblies matching that name.
/ldl/ldl Elenca il contenuto della cache dei file scaricati.Lists the contents of the downloaded files cache.
/lr [assemblyName]/lr [assemblyName] Elenca tutti gli assembly e i conteggi dei riferimenti corrispondenti.Lists all assemblies and their corresponding reference counts. Se si specifica il parametro assemblyName, lo strumento elenca solo gli assembly che corrispondono al nome e i relativi conteggi dei riferimenti corrispondenti.If you specify the assemblyName parameter, the tool lists only the assemblies matching that name and their corresponding reference counts.
/nologo/nologo Evita la visualizzazione del messaggio di avvio Microsoft.Suppresses the Microsoft startup banner display.
/r [assemblyName | assemblyPath]/r [assemblyName | assemblyPath]

schemescheme

idid

descriptiondescription
Specifica un riferimento analizzato a uno o più assembly da installare o disinstallare.Specifies a traced reference to an assembly or assemblies to install or uninstall. Specificare questa opzione con le opzioni /i, /il, /u o /ul.Specify this option with the /i, /il, /u, or /ul options.

Per installare un assembly, specificare i parametri assemblyPath, scheme, id e description con questa opzione.To install an assembly, specify the assemblyPath, scheme, id,and description parameters with this option. Per disinstallare un assembly, specificare i parametri assemblyName, scheme, id e description.To uninstall an assembly, specify the assemblyName, scheme, id,and description parameters.

Per rimuovere un riferimento a un assembly, è necessario specificare gli stessi parametri scheme, id e description specificati con le opzioni /i e /r (o /ir) al momento dell'installazione dell'assembly.To remove a reference to an assembly, you must specify the same scheme, id, and description parameters that were specified with the /i and /r (or /ir) options when the assembly was installed. Se si sta disinstallando un assembly, questo viene rimosso anche dalla Global Assembly Cache se si tratta dell'ultimo riferimento da rimuovere e se in Windows Installer non ci sono riferimenti residui all'assembly.If you are uninstalling an assembly, the tool also removes the assembly from the global assembly cache if it is the last reference to remove and if Windows Installer has no outstanding references to the assembly.

Il parametro scheme specifica il tipo di schema di installazione.The scheme parameter specifies the type of installation scheme. È possibile specificare uno dei valori seguenti:You can specify one of the following values:

- UNINSTALL_KEY: specificare questo valore se il programma di installazione aggiunge l'applicazione a Installazione applicazioni in Microsoft Windows.- UNINSTALL_KEY: Specify this value if the installer adds the application to Add/Remove Programs in Microsoft Windows. La applicazioni si aggiungono a Installazione applicazioni aggiungendo una chiave del Registro di sistema a HKLM\Software\Microsoft\Windows\CurrentVersion.Applications add themselves to Add/Remove Programs by adding a registry key to HKLM\Software\Microsoft\Windows\CurrentVersion.
- FILEPATH: specificare questo valore se il programma di installazione non aggiunge l'applicazione a Installazione applicazioni.- FILEPATH: Specify this value if the installer does not add the application to Add/Remove Programs.
- OPAQUE: specificare questo valore se l'inserimento di una chiave del Registro di sistema o di un percorso di file non è applicabile al proprio scenario di installazione.- OPAQUE: Specify this value if supplying a registry key or file path does not apply to your installation scenario. Questo valore consente di specificare informazioni personalizzate per il parametro id.This value allows you to specify custom information for the id parameter.

Il valore da specificare per il parametro id dipende dal valore specificato per il parametro scheme:The value to specify for the id parameter depends on the value specified for the scheme parameter:

- Se si specifica UNINSTALL_KEY per il parametro scheme, specificare il nome dell'applicazione impostato nella chiave del Registro di sistema HKLM\Software\Microsoft\Windows\CurrentVersion.- If you specify UNINSTALL_KEY for the scheme parameter, specify the name of the application set in the HKLM\Software\Microsoft\Windows\CurrentVersion registry key. Se ad esempio la chiave del Registro di sistema è HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, specificare MyApp per il parametro id.For example, if the registry key is HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, specify MyApp for the id parameter.
- Se si specifica FILEPATH per il parametro scheme, specificare il percorso completo del file eseguibile che installa l'assembly come parametro id.- If you specify FILEPATH for the scheme parameter, specify the full path to the executable file that installs the assembly as the id parameter.
- Se si specifica OPAQUE per il parametro scheme, è possibile specificare qualsiasi porzione di dati come parametro id.- If you specify OPAQUE for the scheme parameter, you can supply any piece of data as the id parameter. I dati specificati devono essere racchiusi tra virgolette ("").The data you specify must be enclosed in quotation marks ("").

Il parametro description consente di specificare testo descrittivo sull'applicazione da installare.The description parameter allows you to specify descriptive text about the application to install. Queste informazioni vengono visualizzate quando vengono enumerati i riferimenti.This information is displayed when references are enumerated.
/silent/silent Evita la visualizzazione di tutto l'output.Suppresses the display of all output.
/u assemblyName/u assemblyName Disinstalla un assembly dalla cache di assembly globale.Uninstalls an assembly from the global assembly cache.
/uf assemblyName/uf assemblyName Forza la disinstallazione di un assembly specificato rimuovendone tutti i riferimenti.Forces a specified assembly to uninstall by removing all references to the assembly.

Specificare questa opzione equivale a specificare contemporaneamente le opzioni /u e /f.Specifying this option is equivalent to specifying the /u and /f options together. Nota: Non è possibile usare questa opzione per rimuovere un assembly installato con Microsoft Windows Installer.Note: You cannot use this option to remove an assembly that was installed using Microsoft Windows Installer. Se si tenta di eseguire questa operazione, verrà visualizzato un messaggio di errore.If you attempt this operation, the tool displays an error message.
/ul assemblyListFile/ul assemblyListFile Disinstalla uno o più assembly specificati in assemblyListFile dalla Global Assembly Cache.Uninstalls one or more assemblies specified in assemblyListFile from the global assembly cache.
/u[ngen] assemblyName/u[ngen] assemblyName Disinstalla un assembly specificato dalla Global Assembly Cache.Uninstalls a specified assembly from the global assembly cache. Se l'assembly specificato dispone di conteggi dei riferimenti esistenti, verranno visualizzati i conteggi dei riferimenti e l'assembly non verrà rimosso dalla Global Assembly Cache.If the specified assembly has existing reference counts, the tool displays the reference counts and does not remove the assembly from the global assembly cache. Nota: In .NET Framework versione 2.0 l'opzione /ungen non è supportata.Note: In the .NET Framework version 2.0, /ungen is not supported. Usare invece il comando uninstall di Ngen.exe (generatore di immagini native).Instead, use the uninstall command of the Ngen.exe (Native Image Generator).

Se si specifica /ungen in .NET Framework versioni 1.0 e 1.1, Gacutil.exe rimuove l'assembly dalla cache delle immagini native.In the .NET Framework versions 1.0 and 1.1, specifying /ungen causes Gacutil.exe to remove the assembly from the native image cache. In questa cache vengono archiviate le immagini native degli assembly create usando il generatore di immagini native (Ngen.exe).This cache stores the native images for assemblies that have been created using the Ngen.exe (Native Image Generator).
/ur assemblyName/ur assemblyName

schemescheme

idid

descriptiondescription
Disinstalla un riferimento a un assembly specificato dalla Global Assembly Cache.Uninstalls a reference to a specified assembly from the global assembly cache. Per rimuovere un riferimento a un assembly, è necessario specificare gli stessi parametri scheme, id e description specificati con le opzioni /i e /r (o /ir) al momento dell'installazione dell'assembly.To remove a reference to an assembly, you must specify the same scheme, id, and description parameters that were specified with the /i and /r (or /ir) options when the assembly was installed. Per una descrizione dei valori validi che è possibile specificare per questi parametri, vedere l'opzione /r.For a description of the valid values you can specify for these parameters, see the /r option.

Specificare questa opzione equivale a specificare contemporaneamente le opzioni /u e /r.Specifying this option is equivalent to specifying the /u and /r options together.
/?/? Visualizza la sintassi e le opzioni di comando dello strumento.Displays command syntax and options for the tool.

NoteRemarks

Nota

È necessario disporre dei privilegi di amministratore per utilizzare Gacutil.exe.You must have administrator privileges to use Gacutil.exe.

In particolare, Gacutil.exe consente di installare e rimuovere assembly dalla cache, nonché elencare il contenuto della cache stessa.Specifically, Gacutil.exe allows you to install assemblies into the cache, remove them from the cache, and list the contents of the cache.

Gacutil.exe offre opzioni che supportano un conteggio dei riferimenti simile allo schema di conteggio dei riferimenti supportato da Windows Installer.Gacutil.exe provides options that support reference counting similar to the reference counting scheme supported by Windows Installer. È possibile utilizzare Gacutil.exe per installare due applicazioni che installano lo stesso assembly in quanto consente di tenere traccia del numero di riferimenti all'assembly.You can use Gacutil.exe to install two applications that install the same assembly; the tool keeps track of the number of references to the assembly. Di conseguenza, l'assembly resta sul computer fino alla completa disinstallazione di entrambe le applicazioni.As a result, the assembly will remain on the computer until both applications are uninstalled. Se si utilizza Gacutil.exe per l'installazione di prodotti effettivi, utilizzare le opzioni che supportano il conteggio dei riferimenti.If you are using Gacutil.exe for actual product installations, use the options that support reference counting. Usare le opzioni /i e /r insieme per installare un assembly e aggiungere un riferimento per il conteggio.Use the /i and /r options together to install an assembly and add a reference to count it. Usare le opzioni /u e /r insieme per rimuovere un conteggio dei riferimenti per un assembly.Use the /u and /r options together to remove a reference count for an assembly. Se le opzioni /i e /u vengono usate singolarmente, il conteggio dei riferimenti non sarà supportato.Be aware that using the /i and /u options alone does not support reference counting. Queste opzioni sono utili durante lo sviluppo dei prodotti ma non per l'installazione di prodotti effettivi.These options are appropriate for use during product development but not for actual product installations.

Usare le opzioni /il o /ul per installare o disinstallare un elenco di assembly archiviati in un file di testo ANSI.Use the /il or /ul options to install or uninstall a list of assemblies stored in an ANSI text file. Il contenuto del file di testo deve essere formattato correttamente.The contents of the text file must be formatted correctly. Per utilizzare un file di testo per installare assembly, specificare il percorso di ciascun assembly in una riga separata del file.To use a text file to install assemblies, specify the path to each assembly on a separate line in the file. Nell'esempio che segue viene illustrato il contenuto di un file contenente assembly da installare.The following example demonstrates the contents of a file containing assemblies to install.

myAssembly1.dll
myAssembly2.dll
myAssembly3.dll

Per utilizzare un file di testo per disinstallare assembly, specificare il nome completo di ogni assembly in una riga separata del file.To use a text file to uninstall assemblies, specify the fully qualified assembly name for each assembly on a separate line in the file. Nell'esempio che segue viene illustrato il contenuto di un file contenente assembly da disinstallare.The following example demonstrates the contents of a file containing assemblies to uninstall.

myAssembly1,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly2,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly3,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab

Nota

Se si prova a installare un assembly con un nome di file più lungo rispetto a una lunghezza compresa tra 79 e 91 caratteri (esclusa l'estensione di file), è possibile che venga generato l'errore seguente:Attempting to install an assembly with a filename longer than between 79 and 91 characters (excluding the file extension) can result in the following error:

Failure adding assembly to the cache:   The file name is too long.

Ciò avviene perché Gacutil.exe crea internamente un percorso con un numero massimo di caratteri definito da MAX_PATH e costituito dagli elementi seguenti:This is because internally Gacutil.exe constructs a path of up to MAX_PATH characters that consists of the following elements:

  • Radice della Global Assembly Cache: 34 caratteri (ad esempio, C:\Windows\Microsoft.NET\assembly\)GAC Root - 34 chars (ie. C:\Windows\Microsoft.NET\assembly\)
  • Architettura: 7 o 9 caratteri (ad esempio, GAC_32\, GAC_64\, GAC_MSIL)Architecture - 7 or 9 chars (ie. GAC_32\, GAC_64\, GAC_MSIL)
  • AssemblyName: fino a 91 caratteri, a seconda delle dimensioni degli altri elementi (ad esempio,AssemblyName - Up to 91 chars, depending on the size of the other elements (eg. System.Xml.Linq\)System.Xml.Linq\)
  • AssemblyInfo: da 31 a 48 caratteri o un numero maggiore, costituito da:AssemblyInfo - 31 to 48 chars or more consisting of:
    • Framework: 5 caratteri (ad esempio,Framework - 5 chars (eg. v4.0_)v4.0_)
    • AssemblyVersion: da 8 a 24 caratteri (ad esempio,AssemblyVersion - 8 to 24 chars (eg. 9.0.1000.0_)9.0.1000.0_)
    • AssemblyLanguage. da 1 a 8 caratteri (ad esempio,AssemblyLanguage - 1 to 8 chars (eg. de_, sr-Cyrl_)de_, sr-Cyrl_)
    • PublicKey: 17 caratteri (ad esempio,PublicKey - 17 chars (eg. 31bf3856ad364e35\)31bf3856ad364e35\)
  • DllFileName: fino a 91 + 4 caratteri (ad esempio, <AssemblyName>.dll)DllFileName - Up to 91 + 4 chars (ie. <AssemblyName>.dll)

EsempiExamples

Il comando che segue installa l'assembly mydll.dll nella Global Assembly Cache.The following command installs the assembly mydll.dll into the global assembly cache.

gacutil /i mydll.dll

Il comando che segue rimuove l'assembly hello dalla Global Assembly Cache purché non esista alcun conteggio dei riferimenti per l'assembly.The following command removes the assembly hello from the global assembly cache as long as no reference counts exist for the assembly.

gacutil /u hello

Si noti che il comando precedente può causare la rimozione di più assembly dalla cache dell'assembly in quanto il nome dell'assembly non è completo.Note that the previous command might remove more than one assembly from the assembly cache because the assembly name is not fully specified. Se ad esempio nella cache sono installate sia la versione 1.0.0.0 che la versione 3.2.2.1 di hello, il comando gacutil /u hello rimuoverà entrambi gli assembly.For example, if both version 1.0.0.0 and 3.2.2.1 of hello are installed in the cache, the command gacutil /u hello removes both of the assemblies.

L'esempio che segue illustra come evitare che vengano rimossi più assembly.Use the following example to avoid removing more than one assembly. Questo comando rimuove solo l'assembly hello corrispondente al numero di versione, alle impostazioni cultura e alla chiave pubblica specificati in modo completo.This command removes only the hello assembly that matches the fully specified version number, culture, and public key.

gacutil /u hello, Version=1.0.0.1, Culture="de",PublicKeyToken=45e343aae32233ca

Il comando che segue installa gli assembly specificati nel file assemblyList.txt nella Global Assembly Cache.The following command installs the assemblies specified in the file assemblyList.txt into the global assembly cache.

gacutil /il assemblyList.txt

Il comando che segue rimuove gli assembly specificati nel file assemblyList.txt dalla Global Assembly Cache.The following command removes the assemblies specified in the file assemblyList.txt from the global assembly cache.

gacutil /ul assemblyList.txt

Il comando che segue installa myDll.dll nella Global Assembly Cache e aggiunge un riferimento per il conteggio.The following command installs myDll.dll into the global assembly cache and adds a reference to count it. L'assembly myDll.dll viene utilizzato dall'applicazione MyApp.The assembly myDll.dll is used by the application MyApp. Il parametro UNINSTALL_KEY MyApp specifica la chiave del Registro di sistema che aggiunge MyApp a Installazione applicazioni in Windows.The UNINSTALL_KEY MyApp parameter specifies the registry key that adds MyApp to Add/Remove Programs in Windows. Il parametro relativo alla descrizione è specificato come My Application Description.The description parameter is specified as My Application Description.

gacutil /i /r myDll.dll UNINSTALL_KEY MyApp "My Application Description"

Il comando che segue installa myDll.dll nella Global Assembly Cache e aggiunge un riferimento per il conteggio.The following command installs myDll.dll into the global assembly cache and adds a reference to count it. Il parametro relativo allo schema, FILEPATH, e quello relativo all'id, c:\applications\myApp\myApp.exe, specificano il percorso dell'applicazione che installa myDll.dll. Il parametro relativo alla descrizione è specificato come MyApp.The scheme parameter, FILEPATH, and the id parameter, c:\applications\myApp\myApp.exe, specify the path to the application that is installing myDll.dll. The description parameter is specified as MyApp.

gacutil /i /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

Il comando che segue installa myDll.dll nella Global Assembly Cache e aggiunge un riferimento per il conteggio.The following command installs myDll.dll into the global assembly cache and adds a reference to count it. Il parametro relativo allo schema, OPAQUE, consente di personalizzare i parametri relativi all'id e alla descrizione.The scheme parameter, OPAQUE, allows you to customize the id and description parameters.

gacutil /i /r mydll.dll OPAQUE "Insert custom application details here" "Insert Custom description information here"

Il comando che segue rimuove il riferimento a myDll.dll dall'applicazione myApp.The following command removes the reference to myDll.dll by the application myApp. Se si tratta dell'ultimo riferimento all'assembly, verrà rimosso anche l'assembly dalla Global Assembly Cache.If this is the last reference to the assembly, it will also remove the assembly from the global assembly cache.

gacutil /u /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

Il comando che segue elenca il contenuto della Global Assembly Cache.The following command lists the contents of the global assembly cache.

gacutil /l

Vedere ancheSee also