Gacutil.exe (Ferramenta do Cache de Assemblies Global)Gacutil.exe (Global Assembly Cache Tool)

A ferramenta de Cache de Assembly Global permite exibir e manipular o conteúdo do cache de assembly global e do cache de download.The Global Assembly Cache tool allows you to view and manipulate the contents of the global assembly cache and download cache.

Essa ferramenta é instalada automaticamente com o Visual Studio.This tool is automatically installed with Visual Studio. Para executar a ferramenta, use o Prompt de Comando do Desenvolvedor para Visual Studio (ou o Prompt de Comando do Visual Studio no Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Para obter mais informações, consulte Prompts de Comando.For more information, see Command Prompts.

No prompt de comando, digite o seguinte:At the command prompt, type the following:

SintaxeSyntax

gacutil [options] [assemblyName | assemblyPath | assemblyListFile]

ParâmetrosParameters

ArgumentoArgument DescriçãoDescription
assemblyNameassemblyName O nome de um assembly.The name of an assembly. É possível fornecer um nome de assembly especificado parcialmente como, por exemplo, myAssembly ou um nome de assembly totalmente especificado como, por exemplo, 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 O nome de um arquivo que contém um manifesto de assembly.The name of a file that contains an assembly manifest.
assemblyListFileassemblyListFile O caminho para um arquivo de texto ANSI que lista assemblies para instalação ou desinstalação.The path to an ANSI text file that lists assemblies to install or uninstall. Para usar um arquivo de texto para instalar assemblies, especifique o caminho para cada assembly em uma linha separada no arquivo.To use a text file to install assemblies, specify the path to each assembly on a separate line in the file. A ferramenta interpreta caminhos relativos em relação ao local do assemblyListFile.The tool interprets relative paths, relative to the location of the assemblyListFile. Para usar um arquivo de texto para desinstalar assemblies, especifique o nome de assembly totalmente qualificado para cada assembly em uma linha separada no arquivo.To use a text file to uninstall assemblies, specify the fully qualified assembly name for each assembly on a separate line in the file. Consulte os exemplos de conteúdo assemblyListFile adiante neste tópico.See the assemblyListFile contents examples later in this topic.
OpçãoOption DescriçãoDescription
/cdl/cdl Exclui o conteúdo do cache de download.Deletes the contents of the download cache.
/f/f Especifique essa opção com as opções /i ou /il para forçar a reinstalação de um assembly.Specify this option with the /i or /il options to force an assembly to reinstall. Se um assembly com o mesmo nome já estiver no cache de assembly global, a ferramenta o substituirá.If an assembly with the same name already exists in the global assembly cache, the tool overwrites it.
/h[elp]/h[elp] Exibe sintaxe de comando e opções para a ferramenta.Displays command syntax and options for the tool.
/i assemblyPath/i assemblyPath Instala um assembly no cache de assembly global.Installs an assembly into the global assembly cache.
/if assemblyPath/if assemblyPath Instala um assembly no cache de assembly global.Installs an assembly into the global assembly cache. Se um assembly com o mesmo nome já estiver no cache de assembly global, a ferramenta o substituirá.If an assembly with the same name already exists in the global assembly cache, the tool overwrites it.

Especificar essa opção equivale a definir as opções /i e /f juntas.Specifying this option is equivalent to specifying the /i and /f options together.
/il assemblyListFile/il assemblyListFile Instala um ou mais assemblies especificados em assemblyListFile no cache de assembly global.Installs one or more assemblies specified in assemblyListFile into the global assembly cache.
/ir assemblyPath/ir assemblyPath

schemescheme

idid

descriptiondescription
Instala um assembly no cache de assembly global e adiciona uma referência para contar o assembly.Installs an assembly into the global assembly cache and adds a reference to count the assembly. Você deve especificar os parâmetros assemblyPath, scheme, id e description com essa opção.You must specify the assemblyPath, scheme, id,and description parameters with this option. Para obter uma descrição dos valores válidos que podem ser especificados nesses parâmetros, consulte a opção /r.For a description of the valid values you can specify for these parameters, see the /r option.

Especificar essa opção equivale a definir as opções /i e /r juntas.Specifying this option is equivalent to specifying the /i and /r options together.
/l [assemblyName]/l [assemblyName] Lista o conteúdo do cache de assembly global.Lists the contents of the global assembly cache. Se você especificar o parâmetro assemblyName, a ferramenta listará apenas os assemblies que correspondem a esse nome.If you specify the assemblyName parameter, the tool lists only the assemblies matching that name.
/ldl/ldl Lista o conteúdo do cache de arquivos baixados.Lists the contents of the downloaded files cache.
/lr [assemblyName]/lr [assemblyName] Lista todos os assemblies e suas contagens de referência correspondentes.Lists all assemblies and their corresponding reference counts. Se você especificar o parâmetro assemblyName, a ferramenta listará apenas os assemblies que correspondem a esse nome e suas contagens de referência correspondentes.If you specify the assemblyName parameter, the tool lists only the assemblies matching that name and their corresponding reference counts.
/nologo/nologo Suprime a exibição do banner de inicialização da Microsoft.Suppresses the Microsoft startup banner display.
/r [assemblyName | assemblyPath]/r [assemblyName | assemblyPath]

schemescheme

idid

descriptiondescription
Especifica uma referência rastreada para um assembly ou assemblies para instalação ou desinstalação.Specifies a traced reference to an assembly or assemblies to install or uninstall. Especifique essa opção com as opções /i, /il, /u ou /ul.Specify this option with the /i, /il, /u, or /ul options.

Para instalar um assembly, especifique os parâmetros assemblyPath, scheme, id e description com essa opção.To install an assembly, specify the assemblyPath, scheme, id,and description parameters with this option. Para desinstalar um assembly, especifique os parâmetros assemblyName, scheme, id e description.To uninstall an assembly, specify the assemblyName, scheme, id,and description parameters.

Para remover uma referência a um assembly, você deve especificar os mesmos parâmetros scheme, id e description que foram especificados com as opções /i e /r (ou /ir) quando o assembly foi instalado.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 você estiver desinstalando um assembly, a ferramenta também removerá o assembly do cache de assembly global se for a última referência a ser removida e se o Windows Installer não tiver referências pendentes para o 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.

O parâmetro scheme especifica o tipo de esquema de instalação.The scheme parameter specifies the type of installation scheme. É possível especificar um dos seguintes valores:You can specify one of the following values:

– UNINSTALL_KEY: especifique esse valor se o instalador adicionar o aplicativo a Adicionar/Remover Programas no Microsoft Windows.- UNINSTALL_KEY: Specify this value if the installer adds the application to Add/Remove Programs in Microsoft Windows. Os aplicativos se adicionam a Adicionar/Remover Programas incluindo uma chave do Registro 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: especifique esse valor se o instalador não adicionar o aplicativo a Adicionar/Remover Programas.- FILEPATH: Specify this value if the installer does not add the application to Add/Remove Programs.
– OPAQUE: especifique esse valor se você estiver fornecendo uma chave do Registro ou se um caminho de arquivo não se aplicar ao cenário de instalação.- OPAQUE: Specify this value if supplying a registry key or file path does not apply to your installation scenario. Esse valor permite especificar informações personalizadas para o parâmetro id.This value allows you to specify custom information for the id parameter.

O valor a ser especificado para o parâmetro id depende do valor especificado para o parâmetro scheme:The value to specify for the id parameter depends on the value specified for the scheme parameter:

– Se você especificar UNINSTALL_KEY para o parâmetro scheme, especifique o nome do aplicativo definido na chave do Registro 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. Por exemplo, se a chave do Registro for HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, especifique MyApp para o parâmetro id.For example, if the registry key is HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, specify MyApp for the id parameter.
– Se você especificar FILEPATH para o parâmetro scheme, especifique o caminho completo para o arquivo executável que instala o assembly como o parâmetro 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 você especificar OPAQUE para o parâmetro scheme, poderá fornecer qualquer dado como o parâmetro id.- If you specify OPAQUE for the scheme parameter, you can supply any piece of data as the id parameter. Os dados especificados devem estar entre aspas ("").The data you specify must be enclosed in quotation marks ("").

O parâmetro description permite especificar o texto descritivo sobre o aplicativo a ser instalado.The description parameter allows you to specify descriptive text about the application to install. Essas informações são exibidas quando as referências são enumeradas.This information is displayed when references are enumerated.
/silent/silent Suprime a exibição de toda a saída.Suppresses the display of all output.
/u assemblyName/u assemblyName Desinstala um assembly do cache de assembly global.Uninstalls an assembly from the global assembly cache.
/uf assemblyName/uf assemblyName Força um assembly especificado para desinstalar removendo-se todas as referências para o assembly.Forces a specified assembly to uninstall by removing all references to the assembly.

Especificar essa opção equivale a definir as opções /u e /f juntas.Specifying this option is equivalent to specifying the /u and /f options together. Observação: Não é possível usar essa opção para remover um assembly que foi instalado usando-se o Microsoft Windows Installer.Note: You cannot use this option to remove an assembly that was installed using Microsoft Windows Installer. Se você tentar essa operação, a ferramenta exibirá uma mensagem de erro.If you attempt this operation, the tool displays an error message.
/ul assemblyListFile/ul assemblyListFile Desinstala um ou mais assemblies especificados em assemblyListFile do cache de assembly global.Uninstalls one or more assemblies specified in assemblyListFile from the global assembly cache.
/u[ngen] assemblyName/u[ngen] assemblyName Desinstala um assembly especificado do cache de assembly global.Uninstalls a specified assembly from the global assembly cache. Se o assembly especificado tiver contagens de referência existentes, a ferramenta exibirá as contagens de referência e não removerá o assembly do cache de assembly global.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. Observação: No .NET Framework versão 2.0, /ungen não é compatível.Note: In the .NET Framework version 2.0, /ungen is not supported. Em vez disso, use o comando uninstall do Ngen.exe (Gerador de Imagens Nativas).Instead, use the uninstall command of the Ngen.exe (Native Image Generator).

No .NET Framework versões 1.0 e 1.1, especificar /ungen faz Gacutil.exe remover o assembly do cache de imagens nativas.In the .NET Framework versions 1.0 and 1.1, specifying /ungen causes Gacutil.exe to remove the assembly from the native image cache. Esse cache armazena as imagens nativas para assemblies que foram criados usando o Ngen.exe (Gerador de Imagens Nativas).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
Desinstala uma referência de um assembly especificado do cache de assembly global.Uninstalls a reference to a specified assembly from the global assembly cache. Para remover uma referência a um assembly, você deve especificar os mesmos parâmetros scheme, id e description que foram especificados com as opções /i e /r (ou /ir) quando o assembly foi instalado.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. Para obter uma descrição dos valores válidos que podem ser especificados nesses parâmetros, consulte a opção /r.For a description of the valid values you can specify for these parameters, see the /r option.

Especificar essa opção equivale a definir as opções /u e /r juntas.Specifying this option is equivalent to specifying the /u and /r options together.
/?/? Exibe sintaxe de comando e opções para a ferramenta.Displays command syntax and options for the tool.

ComentáriosRemarks

Observação

Você deve ter privilégios de administrador para usar Gacutil.exe.You must have administrator privileges to use Gacutil.exe.

Mais especificamente, Gacutil.exe permite instalar assemblies no cache, removê-los de cache e listar o conteúdo do cache.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 oferece opções que dão suporte à contagem de referências semelhante ao esquema da contagem de referências compatível com o Windows Installer.Gacutil.exe provides options that support reference counting similar to the reference counting scheme supported by Windows Installer. É possível usar Gacutil.exe para instalar dois aplicativos que instalam o mesmo assembly; a ferramenta acompanha o número de referências para o 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. Assim, o assembly permanecerá no computador até ambos os aplicativos serem desinstalados.As a result, the assembly will remain on the computer until both applications are uninstalled. Se você estiver usando Gacutil.exe em instalações de produto reais, use as opções que dão suporte à contagem de referências.If you are using Gacutil.exe for actual product installations, use the options that support reference counting. Use as opções /i e /r juntas para instalar um assembly e adicionar uma referência para contá-lo.Use the /i and /r options together to install an assembly and add a reference to count it. Use as opções /u e /r juntas para remover uma contagem de referência para um assembly.Use the /u and /r options together to remove a reference count for an assembly. Lembre que o uso das opções /i e /u sozinhas não dá suporte à contagem de referência.Be aware that using the /i and /u options alone does not support reference counting. Essas opções são apropriadas ao uso durante o desenvolvimento de produtos, mas não para instalações de produto reais.These options are appropriate for use during product development but not for actual product installations.

Use as opções /il ou /ul para instalar ou desinstalar uma lista de assemblies armazenadas em um arquivo de texto ANSI.Use the /il or /ul options to install or uninstall a list of assemblies stored in an ANSI text file. O conteúdo do arquivo de texto deve ser formatado corretamente.The contents of the text file must be formatted correctly. Para usar um arquivo de texto para instalar assemblies, especifique o caminho para cada assembly em uma linha separada no arquivo.To use a text file to install assemblies, specify the path to each assembly on a separate line in the file. O exemplo a seguir demonstra o conteúdo de um arquivo que contém assemblies para instalação.The following example demonstrates the contents of a file containing assemblies to install.

myAssembly1.dll
myAssembly2.dll
myAssembly3.dll

Para usar um arquivo de texto para desinstalar assemblies, especifique o nome de assembly totalmente qualificado para cada assembly em uma linha separada no arquivo.To use a text file to uninstall assemblies, specify the fully qualified assembly name for each assembly on a separate line in the file. O exemplo a seguir demonstra o conteúdo de um arquivo que contém assemblies para desinstalação.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

Observação

A tentativa de instalar um assembly com um nome de arquivo co mais de 91 a 79 caracteres (excluindo a extensão de arquivo) pode resultar no seguinte erro: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.

Isso ocorre porque, internamente, Gacutil.exe constrói um caminho de até MAX_PATH caracteres, composto pelos seguintes elementos:This is because internally Gacutil.exe constructs a path of up to MAX_PATH characters that consists of the following elements:

  • Raiz do GAC: 34 caracteres (C:\Windows\Microsoft.NET\assembly\)GAC Root - 34 chars (ie. C:\Windows\Microsoft.NET\assembly\)
  • Arquitetura: 7 ou 9 caracteres (GAC_32\, GAC_64\, GAC_MSIL)Architecture - 7 or 9 chars (ie. GAC_32\, GAC_64\, GAC_MSIL)
  • AssemblyName: até 91 caracteres, dependendo do tamanho dos outros elementos (por exemplo.AssemblyName - Up to 91 chars, depending on the size of the other elements (eg. System.Xml.Linq\)System.Xml.Linq\)
  • AssemblyInfo: 31 a 48 caracteres ou mais, composto por:AssemblyInfo - 31 to 48 chars or more consisting of:
    • Framework: 5 caracteres (por exemplo,Framework - 5 chars (eg. v4.0_)v4.0_)
    • AssemblyVersion: 8 a 24 caracteres (por exemplo,AssemblyVersion - 8 to 24 chars (eg. 9.0.1000.0_)9.0.1000.0_)
    • AssemblyLanguage: 1 a 8 caracteres (por exemplo,AssemblyLanguage - 1 to 8 chars (eg. de_, sr-Cyrl_)de_, sr-Cyrl_)
    • PublicKey: 17 caracteres (por exemplo,PublicKey - 17 chars (eg. 31bf3856ad364e35\)31bf3856ad364e35\)
  • DllFileName: até 91 + 4 caracteres (<AssemblyName>.dll)DllFileName - Up to 91 + 4 chars (ie. <AssemblyName>.dll)

ExemplosExamples

O comando a seguir instala o assembly mydll.dll no cache de assembly global.The following command installs the assembly mydll.dll into the global assembly cache.

gacutil /i mydll.dll

O comando a seguir remove o assembly hello do cache de assembly global, desde que não haja contagens de referência para o 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

O comando anterior pode remover mais de um assembly do cache de assembly porque o nome do assembly não está totalmente especificado.Note that the previous command might remove more than one assembly from the assembly cache because the assembly name is not fully specified. Por exemplo, se as versões 1.0.0.0 e 3.2.2.1 de hello forem instaladas no cache, o comando gacutil /u hello removerá os assemblies.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.

Use o exemplo a seguir para evitar a remoção de mais de um assembly.Use the following example to avoid removing more than one assembly. Esse comando remove apenas o assembly hello correspondente ao número de versão totalmente especificado, à cultura e à chave pública.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

O comando a seguir instala os assemblies especificados no arquivo assemblyList.txt no cache de assembly global.The following command installs the assemblies specified in the file assemblyList.txt into the global assembly cache.

gacutil /il assemblyList.txt

O comando a seguir remove os assemblies especificados no arquivo assemblyList.txt do cache de assembly global.The following command removes the assemblies specified in the file assemblyList.txt from the global assembly cache.

gacutil /ul assemblyList.txt

O comando a seguir instala myDll.dll no cache de assembly global e adiciona uma referência para contá-lo.The following command installs myDll.dll into the global assembly cache and adds a reference to count it. O assembly myDll.dll é usado pelo aplicativo MyApp.The assembly myDll.dll is used by the application MyApp. O parâmetro UNINSTALL_KEY MyApp especifica a chave do Registro que adiciona MyApp a Adicionar/Remover Programas no Windows.The UNINSTALL_KEY MyApp parameter specifies the registry key that adds MyApp to Add/Remove Programs in Windows. O parâmetro de descrição é especificado como My Application Description.The description parameter is specified as My Application Description.

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

O comando a seguir instala myDll.dll no cache de assembly global e adiciona uma referência para contá-lo.The following command installs myDll.dll into the global assembly cache and adds a reference to count it. O parâmetro de esquema, FILEPATH e o parâmetro de ID, c:\applications\myApp\myApp.exe, especificam o caminho para o aplicativo que está instalando myDll.dll.. O parâmetro de descrição é especificado como 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

O comando a seguir instala myDll.dll no cache de assembly global e adiciona uma referência para contá-lo.The following command installs myDll.dll into the global assembly cache and adds a reference to count it. O parâmetro de esquema, OPAQUE, permite personalizar os parâmetros de ID e descrição.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"

O comando a seguir remove a referência para myDll.dll pelo aplicativo myApp.The following command removes the reference to myDll.dll by the application myApp. Se essa for a última referência para o assembly, ela também removerá o assembly do cache de assembly global.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

O comando a seguir lista o conteúdo do cache de assembly global.The following command lists the contents of the global assembly cache.

gacutil /l

Consulte tambémSee also