Gacutil.exe (Herramienta Caché global de ensamblados)Gacutil.exe (Global Assembly Cache Tool)

La herramienta Caché global de ensamblados permite ver y manipular el contenido de la caché global de ensamblados y la memoria caché de descarga.The Global Assembly Cache tool allows you to view and manipulate the contents of the global assembly cache and download cache.

Esta herramienta se instala automáticamente con Visual Studio.This tool is automatically installed with Visual Studio. Para ejecutar la herramienta, use Símbolo del sistema para desarrolladores de Visual Studio (o Símbolo del sistema de Visual Studio en Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Para más información, consulte Símbolos del sistema.For more information, see Command Prompts.

En el símbolo del sistema, escriba lo siguiente:At the command prompt, type the following:

SintaxisSyntax

gacutil [options] [assemblyName | assemblyPath | assemblyListFile]

ParámetrosParameters

ArgumentoArgument DescripciónDescription
assemblyNameassemblyName El nombre de un ensamblado.The name of an assembly. Puede especificar parte del nombre del ensamblado, como myAssembly, o puede especificar un nombre de ensamblado completo, como 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 El nombre de un archivo que contiene un manifiesto del ensamblado.The name of a file that contains an assembly manifest.
assemblyListFileassemblyListFile La ruta de acceso a un archivo de texto ANSI donde se enumeran los ensamblados que se van a instalar o desinstalar.The path to an ANSI text file that lists assemblies to install or uninstall. Si desea usar un archivo de texto para instalar ensamblados, especifique la ruta de acceso de cada ensamblado en una línea independiente del archivo.To use a text file to install assemblies, specify the path to each assembly on a separate line in the file. La herramienta interpreta las rutas de acceso relativas en relación con la ubicación de assemblyListFile.The tool interprets relative paths, relative to the location of the assemblyListFile. Si desea usar un archivo de texto para desinstalar ensamblados, especifique el nombre completo de cada ensamblado en una línea independiente del archivo.To use a text file to uninstall assemblies, specify the fully qualified assembly name for each assembly on a separate line in the file. Puede ver algunos ejemplos del contenido de assemblyListFile más adelante en este tema.See the assemblyListFile contents examples later in this topic.
OpciónOption DescripciónDescription
/cdl/cdl Elimina el contenido de la memoria caché de descarga.Deletes the contents of the download cache.
/f/f Especifique esta opción con las opciones /i o /il para forzar la reinstalación de un ensamblado.Specify this option with the /i or /il options to force an assembly to reinstall. Si ya existe un ensamblado con el mismo nombre en la caché global de ensamblados, la herramienta sobrescribe dicho ensamblado.If an assembly with the same name already exists in the global assembly cache, the tool overwrites it.
/h[elp]/h[elp] Muestra las opciones y la sintaxis de los comandos para la herramienta.Displays command syntax and options for the tool.
/i assemblyPath/i assemblyPath Instala un ensamblado en la caché global de ensamblados.Installs an assembly into the global assembly cache.
/if assemblyPath/if assemblyPath Instala un ensamblado en la caché global de ensamblados.Installs an assembly into the global assembly cache. Si ya existe un ensamblado con el mismo nombre en la caché global de ensamblados, la herramienta sobrescribe dicho ensamblado.If an assembly with the same name already exists in the global assembly cache, the tool overwrites it.

Especificar esta opción equivale a especificar las opciones /i y /f juntas.Specifying this option is equivalent to specifying the /i and /f options together.
/il assemblyListFile/il assemblyListFile Instala uno o varios ensamblados especificados en assemblyListFile en la caché global de ensamblados.Installs one or more assemblies specified in assemblyListFile into the global assembly cache.
/ir assemblyPath/ir assemblyPath

schemescheme

identificadorid

descriptiondescription
Instala un ensamblado en la caché global de ensamblados y agrega una referencia para contar el ensamblado.Installs an assembly into the global assembly cache and adds a reference to count the assembly. Con esta opción, debe especificar los parámetros assemblyPath, scheme, id y description.You must specify the assemblyPath, scheme, id,and description parameters with this option. Para obtener una descripción de los valores válidos que puede especificar para estos parámetros, vea la opción /r.For a description of the valid values you can specify for these parameters, see the /r option.

Especificar esta opción equivale a especificar las opciones /i y /r juntas.Specifying this option is equivalent to specifying the /i and /r options together.
/l [assemblyName]/l [assemblyName] Enumera el contenido de la caché global de ensamblados.Lists the contents of the global assembly cache. Si especifica el parámetro assemblyName, la herramienta solo enumera los ensamblados que coinciden con el nombre.If you specify the assemblyName parameter, the tool lists only the assemblies matching that name.
/ldl/ldl Enumera el contenido de la memoria caché de archivos descargados.Lists the contents of the downloaded files cache.
/lr [assemblyName]/lr [assemblyName] Enumera todos los ensamblados y sus recuentos de referencias correspondientes.Lists all assemblies and their corresponding reference counts. Si especifica el parámetro assemblyName, la herramienta solo enumera los ensamblados que coinciden con el nombre y sus recuentos de referencias correspondientes.If you specify the assemblyName parameter, the tool lists only the assemblies matching that name and their corresponding reference counts.
/nologo/nologo Suprime la presentación de la portada de inicio de Microsoft.Suppresses the Microsoft startup banner display.
/r [assemblyName | assemblyPath]/r [assemblyName | assemblyPath]

schemescheme

identificadorid

descriptiondescription
Especifica una referencia de la que se mantiene un seguimiento a uno o varios ensamblados que se van a instalar o desinstalar.Specifies a traced reference to an assembly or assemblies to install or uninstall. Especifique esta opción con las opciones /i, /il, /u o /ul.Specify this option with the /i, /il, /u, or /ul options.

Para instalar un ensamblado, especifique los parámetros assemblyPath, scheme, id y description con esta opción.To install an assembly, specify the assemblyPath, scheme, id,and description parameters with this option. Para desinstalar un ensamblado, especifique los parámetros assemblyName, scheme, id y description.To uninstall an assembly, specify the assemblyName, scheme, id,and description parameters.

Para quitar una referencia a un ensamblado, debe especificar los mismos parámetros scheme, id y description que especificó con las opciones /i y /r (o /ir) al instalar el ensamblado.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. A la hora de desinstalar un ensamblado, tenga en cuenta que la herramienta también quita el ensamblado de la caché global de ensamblados si se trata de la última referencia que se va a quitar y si Windows Installer no tiene referencias pendientes al ensamblado.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.

El parámetro scheme especifica el tipo de esquema de instalación.The scheme parameter specifies the type of installation scheme. Puede especificar uno de los siguientes valores:You can specify one of the following values:

- UNINSTALL_KEY: Especifique este valor si el instalador agrega la aplicación a Agregar o quitar programas en Microsoft Windows.- UNINSTALL_KEY: Specify this value if the installer adds the application to Add/Remove Programs in Microsoft Windows. Las aplicaciones se agregan por sí mismas a Agregar o quitar programas, ya que agregan una clave del 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 este valor si el instalador no agrega la aplicación a Agregar o quitar programas.- FILEPATH: Specify this value if the installer does not add the application to Add/Remove Programs.
- OPAQUE: Especifique este valor si el escenario de instalación no requiere que se proporcione una clave del Registro o una ruta de acceso de archivo.- OPAQUE: Specify this value if supplying a registry key or file path does not apply to your installation scenario. Este valor permite especificar información personalizada para el parámetro id.This value allows you to specify custom information for the id parameter.

El valor que hay que especificar para el parámetro id depende del valor especificado para el parámetro scheme:The value to specify for the id parameter depends on the value specified for the scheme parameter:

- Si especifica UNINSTALL_KEY para el parámetro scheme, especifique el nombre de la aplicación establecida en la clave del 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 ejemplo, si la clave del Registro es HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, especifique MyApp para el parámetro id.For example, if the registry key is HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, specify MyApp for the id parameter.
- Si especifica FILEPATH para el parámetro scheme, especifique la ruta de acceso completa al archivo ejecutable que instala el ensamblado como 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.
- Si especifica OPAQUE para el parámetro scheme, puede proporcionar cualquier dato como parámetro id.- If you specify OPAQUE for the scheme parameter, you can supply any piece of data as the id parameter. Los datos que especifique deben ir entre comillas ("").The data you specify must be enclosed in quotation marks ("").

El parámetro description permite especificar texto descriptivo sobre la aplicación que se va a instalar.The description parameter allows you to specify descriptive text about the application to install. Esta información se muestra cuando se enumeran las referencias.This information is displayed when references are enumerated.
/silent/silent Suprime la presentación de toda la salida del comando.Suppresses the display of all output.
/u assemblyName/u assemblyName Desinstala un ensamblado de la caché global de ensamblados.Uninstalls an assembly from the global assembly cache.
/uf assemblyName/uf assemblyName Fuerza la desinstalación de un ensamblado específico mediante la eliminación de todas las referencias a este.Forces a specified assembly to uninstall by removing all references to the assembly.

Especificar esta opción equivale a especificar las opciones /u y /f juntas.Specifying this option is equivalent to specifying the /u and /f options together. Nota: No puede usar esta opción para quitar un ensamblado instalado con Microsoft Windows Installer.Note: You cannot use this option to remove an assembly that was installed using Microsoft Windows Installer. Si intenta realizar esta operación, la herramienta muestra un mensaje de error.If you attempt this operation, the tool displays an error message.
/ul assemblyListFile/ul assemblyListFile Desinstala uno o varios ensamblados especificados en assemblyListFile de la caché global de ensamblados.Uninstalls one or more assemblies specified in assemblyListFile from the global assembly cache.
/u[ngen] assemblyName/u[ngen] assemblyName Desinstala el ensamblado especificado de la caché global de ensamblados.Uninstalls a specified assembly from the global assembly cache. Si el ensamblado especificado tiene recuentos de referencias, la herramienta muestra dichos recuentos y no quita el ensamblado de la caché global de ensamblados.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: En la versión 2.0 de .NET Framework, no se admite /ungen.Note: In the .NET Framework version 2.0, /ungen is not supported. En su lugar, use el comando uninstall de Ngen.exe (Generador de imágenes nativas).Instead, use the uninstall command of the Ngen.exe (Native Image Generator).

En las versiones 1.0 y 1.1 de .NET Framework, si se especifica /ungen, Gacutil.exe quita el ensamblado de la memoria caché de imágenes 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. Esta caché almacena las imágenes nativas de los ensamblados creados mediante Ngen.exe (Generador de imágenes 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

identificadorid

descriptiondescription
Desinstala una referencia a un ensamblado especificado de la caché global de ensamblados.Uninstalls a reference to a specified assembly from the global assembly cache. Para quitar una referencia a un ensamblado, debe especificar los mismos parámetros scheme, id y description que especificó con las opciones /i y /r (o /ir) al instalar el ensamblado.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 obtener una descripción de los valores válidos que puede especificar para estos parámetros, vea la opción /r.For a description of the valid values you can specify for these parameters, see the /r option.

Especificar esta opción equivale a especificar las opciones /u y /r juntas.Specifying this option is equivalent to specifying the /u and /r options together.
/?/? Muestra las opciones y la sintaxis de los comandos para la herramienta.Displays command syntax and options for the tool.

ComentariosRemarks

Nota

Debe tener privilegios de administrador para poder usar Gacutil.exe.You must have administrator privileges to use Gacutil.exe.

En concreto, Gacutil.exe permite instalar y quitar ensamblados de la memoria caché, así como enumerar el contenido de la misma.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 proporciona opciones compatibles con el recuento de referencias, algo parecido al esquema de recuento de referencias de Windows Installer.Gacutil.exe provides options that support reference counting similar to the reference counting scheme supported by Windows Installer. Puede usar Gacutil.exe para instalar dos aplicaciones que instalen el mismo ensamblado; la herramienta realiza un seguimiento del número de referencias al ensamblado.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. Como consecuencia, el ensamblado permanecerá en el equipo hasta que se desinstalen ambas aplicaciones.As a result, the assembly will remain on the computer until both applications are uninstalled. Si usa Gacutil.exe para realizar instalaciones de productos, use las opciones compatibles con el recuento de referencias.If you are using Gacutil.exe for actual product installations, use the options that support reference counting. Use las opciones /i y /r de forma conjunta para instalar un ensamblado y agregar una referencia para contarlo.Use the /i and /r options together to install an assembly and add a reference to count it. Use las opciones /u y /r de forma conjunta para quitar un recuento de referencias de un ensamblado.Use the /u and /r options together to remove a reference count for an assembly. Tenga en cuenta que el uso de las opciones /i y /u por separado no es compatible con el recuento de referencias.Be aware that using the /i and /u options alone does not support reference counting. Es adecuado usar estas opciones durante el desarrollo del producto, pero no para realizar instalaciones de productos propiamente dichas.These options are appropriate for use during product development but not for actual product installations.

Use las opciones /il o /ul para instalar o desinstalar una lista de ensamblados almacenados en un archivo de texto ANSI.Use the /il or /ul options to install or uninstall a list of assemblies stored in an ANSI text file. El contenido del archivo de texto debe tener el formato correcto.The contents of the text file must be formatted correctly. Si desea usar un archivo de texto para instalar ensamblados, especifique la ruta de acceso de cada ensamblado en una línea independiente del archivo.To use a text file to install assemblies, specify the path to each assembly on a separate line in the file. En el siguiente ejemplo se muestra el contenido de un archivo que contiene ensamblados que se van a instalar.The following example demonstrates the contents of a file containing assemblies to install.

myAssembly1.dll
myAssembly2.dll
myAssembly3.dll

Si desea usar un archivo de texto para desinstalar ensamblados, especifique el nombre completo de cada ensamblado en una línea independiente del archivo.To use a text file to uninstall assemblies, specify the fully qualified assembly name for each assembly on a separate line in the file. En el siguiente ejemplo se muestra el contenido de un archivo que contiene ensamblados que se van a desinstalar.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

Al intentar instalar a un ensamblado con un nombre de archivo que tenga entre 79 y 91 caracteres (sin incluir la extensión de archivo) se puede producir el error siguiente: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.

Esto es porque Gacutil.exe crea internamente una ruta de acceso de hasta MAX_PATH caracteres que consta de los siguientes elementos:This is because internally Gacutil.exe constructs a path of up to MAX_PATH characters that consists of the following elements:

  • Raíz de GAC: 34 caracteres (es decir, C:\Windows\Microsoft.NET\assembly\)GAC Root - 34 chars (ie. C:\Windows\Microsoft.NET\assembly\)
  • Arquitectura: 7 o 9 caracteres (es decir, GAC_32\, GAC_64\ y GAC_MSIL)Architecture - 7 or 9 chars (ie. GAC_32\, GAC_64\, GAC_MSIL)
  • AssemblyName: hasta 91 caracteres, según el tamaño de los demás elementos (por ejemplo,AssemblyName - Up to 91 chars, depending on the size of the other elements (eg. System.Xml.Linq\)System.Xml.Linq\)
  • AssemblyInfo: de 31 a 48 caracteres o más que constan de:AssemblyInfo - 31 to 48 chars or more consisting of:
    • Framework: 5 caracteres (por ejemplo,Framework - 5 chars (eg. v4.0_)v4.0_)
    • AssemblyVersion: de 8 a 24 caracteres (por ejemplo,AssemblyVersion - 8 to 24 chars (eg. 9.0.1000.0_)9.0.1000.0_)
    • AssemblyLanguage: de 1 a 8 caracteres (por ejemplo,AssemblyLanguage - 1 to 8 chars (eg. de_, sr-Cyrl_)de_, sr-Cyrl_)
    • PublicKey: 17 caracteres (por ejemplo,PublicKey - 17 chars (eg. 31bf3856ad364e35\)31bf3856ad364e35\)
  • DllFileName: hasta 91 + 4 caracteres (es decir, <AssemblyName>.dll)DllFileName - Up to 91 + 4 chars (ie. <AssemblyName>.dll)

EjemplosExamples

El comando siguiente instala el ensamblado mydll.dll en la caché global de ensamblados.The following command installs the assembly mydll.dll into the global assembly cache.

gacutil /i mydll.dll

El comando siguiente quita el ensamblado hello de la caché global de ensamblados, ya que no existen recuentos de referencias para el ensamblado.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

Observe que el comando anterior puede quitar más de un ensamblado de la memoria caché de ensamblados porque no se ha especificado el nombre completo del ensamblado.Note that the previous command might remove more than one assembly from the assembly cache because the assembly name is not fully specified. Por ejemplo, si se han instalado en la memoria caché las versiones 1.0.0.0 y 3.2.2.1 de hello, el comando gacutil /u hello quita los dos ensamblados.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 el ejemplo siguiente si solo desea quitar un ensamblado.Use the following example to avoid removing more than one assembly. Este comando solo quita el ensamblado hello cuyo número de versión, referencia cultural y clave pública coincide con los especificados.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

El comando siguiente instala los ensamblados especificados en el archivo assemblyList.txt en la caché global de ensamblados.The following command installs the assemblies specified in the file assemblyList.txt into the global assembly cache.

gacutil /il assemblyList.txt

El comando siguiente quita los ensamblados especificados en el archivo assemblyList.txt de la caché global de ensamblados.The following command removes the assemblies specified in the file assemblyList.txt from the global assembly cache.

gacutil /ul assemblyList.txt

El comando siguiente instala myDll.dll en la caché global de ensamblados y agrega una referencia para contarlo.The following command installs myDll.dll into the global assembly cache and adds a reference to count it. La aplicación myDll.dll usa el ensamblado MyApp.The assembly myDll.dll is used by the application MyApp. El parámetro UNINSTALL_KEY MyApp especifica la clave del Registro que agrega MyApp a Agregar o quitar programas en Windows.The UNINSTALL_KEY MyApp parameter specifies the registry key that adds MyApp to Add/Remove Programs in Windows. El parámetro de descripción se especifica como My Application Description.The description parameter is specified as My Application Description.

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

El comando siguiente instala myDll.dll en la caché global de ensamblados y agrega una referencia para contarlo.The following command installs myDll.dll into the global assembly cache and adds a reference to count it. El parámetro de esquema, FILEPATH, y el parámetro de identificador, c:\applications\myApp\myApp.exe, especifican la ruta de acceso a la aplicación que va a instalar myDll.dll. El parámetro de descripción se especifica 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

El comando siguiente instala myDll.dll en la caché global de ensamblados y agrega una referencia para contarlo.The following command installs myDll.dll into the global assembly cache and adds a reference to count it. El parámetro de esquema, OPAQUE, permite personalizar los parámetros de identificador y descripción.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"

El comando siguiente quita la referencia a myDll.dll procedente de la aplicación myApp.The following command removes the reference to myDll.dll by the application myApp. Si se trata de la última referencia al ensamblado, también quitará el ensamblado de la caché global de ensamblados.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

El comando siguiente enumera el contenido de la caché global de ensamblados.The following command lists the contents of the global assembly cache.

gacutil /l

Vea tambiénSee also