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 seja
GAC_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\
- Quadro - 5 caracteres (por exemplo)
- 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