Partilhar via


Gacutil.exe (ferramenta Global Assembly Cache)

A ferramenta Global Assembly Cache permite visualizar e manipular o conteúdo do cache de assembly global e baixar cache.

Esta ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Visual Studio Developer Command Prompt ou o Visual Studio Developer PowerShell.

Na linha de comandos, escreva o seguinte:

Sintaxe

gacutil [options] [assemblyName | assemblyPath | assemblyListFile]

Parâmetros

Argumento Description
assemblyName O nome de um assembly. Você pode fornecer um nome de assembly parcialmente especificado, como myAssembly ou um nome de assembly totalmente especificado, como myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5.
assemblyPath O nome de um arquivo que contém um manifesto de assembly.
assemblyListFile O caminho para um arquivo de texto ANSI que lista assemblies para instalar ou desinstalar. Para usar um arquivo de texto para instalar assemblies, especifique o caminho para cada assembly em uma linha separada no arquivo. A ferramenta interpreta caminhos relativos, relativos ao local do 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. Consulte os exemplos de conteúdo assemblyListFile mais adiante neste tópico.
Opção Description
/cdl Exclui o conteúdo do cache de download.
/f Especifique essa opção com as opções /i ou /il para forçar a reinstalação de um assembly. Se um assembly com o mesmo nome já existir no cache de assembly global, a ferramenta o substituirá.
/h[ELP] Exibe a sintaxe do comando e as opções da ferramenta.
/i assemblyPath Instala um assembly no cache de assembly global.
/if assemblyPath Instala um assembly no cache de assembly global. Se um assembly com o mesmo nome já existir no cache de assembly global, a ferramenta o substituirá.

Especificar essa opção equivale a especificar as opções /i e /f juntas.
/il assemblyListFile Instala um ou mais assemblies especificados em assemblyListFile no cache global de assemblies.
/ir assemblyPath

scheme

id

descrição
Instala um assembly no cache de assembly global e adiciona uma referência para contar o assembly. Você deve especificar os parâmetros assemblyPath, scheme, id e description com essa opção. Para obter uma descrição dos valores válidos que você pode especificar para esses parâmetros, consulte a opção /r .

Especificar esta opção equivale a especificar as opções /i e /r juntas.
/l [assemblyName] Lista o conteúdo do cache de assembly global. Se você especificar o parâmetro assemblyName , a ferramenta listará apenas os assemblies correspondentes a esse nome.
/ldl Lista o conteúdo do cache de arquivos baixados.
/lr [assemblyName] Lista todos os assemblies e suas contagens de referência correspondentes. Se você especificar o parâmetro assemblyName , a ferramenta listará apenas os assemblies correspondentes a esse nome e suas contagens de referência correspondentes.
/nologo Suprime a exibição do banner de inicialização da Microsoft.
/r [assemblyName | assemblyPath]

scheme

id

descrição
Especifica uma referência rastreada a um assembly ou assemblies a serem instalados ou desinstalados. Especifique esta opção com as opções /i, /il, /u ou /ul .

Para instalar um assembly, especifique os parâmetros assemblyPath, scheme, id e description com essa opção. Para desinstalar um assembly, especifique os parâmetros assemblyName, scheme, id e description .

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

O parâmetro scheme especifica o tipo de esquema de instalação. Você pode especificar um dos seguintes valores:

- UNINSTALL_KEY: Especifique este valor se o instalador adicionar o aplicativo para Adicionar ou remover programas no Microsoft Windows. Os aplicativos se adicionam a Adicionar ou Remover Programas adicionando uma chave do Registro a HKLM\Software\Microsoft\Windows\CurrentVersion.
- FILEPATH: Especifique este valor se o instalador não adicionar o aplicativo para Adicionar ou remover programas.
- OPAQUE: Especifique este valor se o fornecimento de uma chave de registo ou caminho de ficheiro não se aplicar ao seu cenário de instalação. Esse valor permite especificar informações personalizadas para o parâmetro id .

O valor a especificar para o parâmetro id depende do valor especificado para o parâmetro scheme :

- 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. Por exemplo, se a chave do Registro for HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, especifique MyApp para o parâmetro id .
- 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 .
- Se você especificar OPAQUE para o parâmetro scheme , você pode fornecer qualquer parte dos dados como o parâmetro id . Os dados especificados devem ser colocados entre aspas ("").

O parâmetro description permite especificar texto descritivo sobre o aplicativo a ser instalado. Essas informações são exibidas quando as referências são enumeradas.
/silent Suprime a exibição de todas as saídas.
/u assemblyName Desinstala um assembly do cache de assembly global.
/uf assemblyName Força a desinstalação de um assembly especificado removendo todas as referências ao assembly.

Especificar esta opção equivale a especificar as opções /u e /f juntas. Nota: Não é possível utilizar esta opção para remover um assembly que foi instalado utilizando o Microsoft Windows Installer. Se você tentar essa operação, a ferramenta exibirá uma mensagem de erro.
/ul assemblyListFile Desinstala um ou mais assemblies especificados em assemblyListFile do cache global de assemblies.
/u[ngen] assemblyName Desinstala um assembly especificado do cache de assembly global. 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. Nota: No .NET Framework versão 2.0, /ungen não é suportado. Em vez disso, use o uninstall comando do Ngen.exe (Native Image Generator).

No .NET Framework versões 1.0 e 1.1, especificar /ungen faz com que Gacutil.exe remova o assembly do cache de imagem nativo. Esse cache armazena as imagens nativas para assemblies que foram criados usando o Ngen.exe (Native Image Generator).
/ur assemblyName

scheme

id

descrição
Desinstala uma referência a um assembly especificado do cache de assembly global. Para remover uma referência a um assembly, você deve especificar os mesmos parâmetros de esquema, id e descrição que foram especificados com as opções /i e /r (ou /ir) quando o assembly foi instalado. Para obter uma descrição dos valores válidos que você pode especificar para esses parâmetros, consulte a opção /r .

Especificar essa opção equivale a especificar as opções /u e /r juntas.
/? Exibe a sintaxe do comando e as opções da ferramenta.

Observações

Nota

Você deve ter privilégios de administrador para usá Gacutil.exe.

Especificamente, Gacutil.exe permite instalar assemblies no cache, removê-los do cache e listar o conteúdo do cache.

Gacutil.exe fornece opções que suportam a contagem de referência semelhante ao esquema de contagem de referência suportado pelo Windows Installer. Você pode usar Gacutil.exe para instalar dois aplicativos que instalam o mesmo assembly; A ferramenta controla o número de referências à montagem. Como resultado, o assembly permanecerá no computador até que ambos os aplicativos sejam desinstalados. Se você estiver usando Gacutil.exe para instalações reais do produto, use as opções que oferecem suporte à contagem de referência. Use as opções /i e /r juntas para instalar um assembly e adicionar uma referência para contá-lo. Use as opções /u e /r juntas para remover uma contagem de referência para um assembly. Lembre-se de que usar as opções /i e /u por si só não suporta a contagem de referências. Essas opções são apropriadas para uso durante o desenvolvimento do produto, mas não para instalações reais do produto.

Use as opções /il ou /ul para instalar ou desinstalar uma lista de assemblies armazenados em um arquivo de texto ANSI. O conteúdo do arquivo de texto deve ser formatado corretamente. Para usar um arquivo de texto para instalar assemblies, especifique o caminho para cada assembly em uma linha separada no arquivo. O exemplo a seguir demonstra o conteúdo de um arquivo que contém assemblies para instalar.

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. O exemplo a seguir demonstra o conteúdo de um arquivo que contém assemblies para desinstalar.

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

A tentativa de instalar um assembly com um nome de arquivo maior do que entre 79 e 91 caracteres (excluindo a extensão do arquivo) pode resultar no seguinte erro:

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 que consiste nos seguintes elementos:

  • GAC Root - 34 caracteres (ou seja, C:\Windows\Microsoft.NET\assembly\)
  • Arquitetura - 7 ou 9 caracteres (ou sejaGAC_32\, , GAC_64\GAC_MSIL)
  • AssemblyName - Até 91 caracteres, dependendo do tamanho dos outros elementos (por exemplo, System.Xml.Linq\)
  • AssemblyInfo - 31 a 48 caracteres ou mais consistindo em:
    • Quadro - 5 caracteres (por exemplo) v4.0_
    • AssemblyVersion - 8 a 24 caracteres (por exemplo) 9.0.1000.0_
    • AssemblyLanguage - 1 a 8 caracteres (por exemplo de_, sr-Cyrl_)
    • PublicKey - 17 caracteres (por exemplo) 31bf3856ad364e35\
  • DllFileName - Até 91 + 4 caracteres (ou seja, <AssemblyName>.dll)

Exemplos

O comando a seguir instala o assembly mydll.dll no cache de assembly global.

gacutil /i mydll.dll

O comando a seguir remove o assembly hello do cache de assembly global, desde que não existam contagens de referência para o assembly.

gacutil /u hello

Observe que o comando anterior pode remover mais de um assembly do cache do assembly porque o nome do assembly não está totalmente especificado. Por exemplo, se ambas as versões 1.0.0.0 e 3.2.2.1 estiverem hello instaladas no cache, o comando gacutil /u hello removerá ambos os assemblies.

Use o exemplo a seguir para evitar a remoção de mais de um assembly. Este comando remove apenas o hello assembly que corresponde ao número de versão, cultura e chave pública totalmente especificados.

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.

gacutil /il assemblyList.txt

O comando a seguir remove os assemblies especificados no arquivo assemblyList.txt do cache de assembly global.

gacutil /ul assemblyList.txt

O comando a seguir é myDll.dll instalado no cache de assembly global e adiciona uma referência para contá-lo. O assembly myDll.dll é usado pelo aplicativo MyApp. O UNINSTALL_KEY MyApp parâmetro especifica a chave do Registro que adiciona MyApp a Adicionar ou Remover Programas no Windows. O parâmetro description é especificado como My Application Description.

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

O comando a seguir é myDll.dll instalado no cache de assembly global e adiciona uma referência para contá-lo. O parâmetro scheme, FILEPATH, e o parâmetro id, c:\applications\myApp\myApp.exe, especificam o caminho para o aplicativo que está sendo instalado myDll.dll. O parâmetro description é especificado como MyApp.

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

O comando a seguir é myDll.dll instalado no cache de assembly global e adiciona uma referência para contá-lo. O parâmetro scheme, OPAQUE, permite personalizar os parâmetros id e description.

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

O comando a seguir remove a referência ao myDll.dll pelo aplicativo myApp. Se esta for a última referência ao assembly, ele também removerá o assembly do cache global do assembly.

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.

gacutil /l

Consulte também