Installutil.exe (Herramienta Installer)Installutil.exe (Installer Tool)

La herramienta de instalación es una utilidad de la línea de comandos que le permite instalar y desinstalar recursos de servidor mediante la ejecución de los componentes del instalador en ensamblados específicos.The Installer tool is a command-line utility that allows you to install and uninstall server resources by executing the installer components in specified assemblies. Esta herramienta funciona junto con clases del espacio de nombres System.Configuration.Install.This tool works in conjunction with classes in the System.Configuration.Install namespace.

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

installutil [/u[ninstall]] [options] assembly [[options] assembly] ...

ParámetrosParameters

ArgumentoArgument DescripciónDescription
assembly Nombre de archivo del ensamblado en el que se ejecutan los componentes del instalador.The file name of the assembly in which to execute the installer components. Omita este parámetro si desea especificar el nombre seguro del ensamblado mediante la opción /AssemblyName.Omit this parameter if you want to specify the assembly's strong name by using the /AssemblyName option.

OpcionesOptions

OpciónOption DescripciónDescription
/h[elp]

o bien-or-

/?
Muestra las opciones y la sintaxis de los comandos para la herramienta.Displays command syntax and options for the tool.
/help assembly/help assembly

o bien-or-

/? assembly/? assembly
Muestra opciones adicionales reconocidas por instaladores individuales dentro del ensamblado especificado, junto con la sintaxis y las opciones de los comandos de InstallUtil.exe.Displays additional options recognized by individual installers within the specified assembly, along with command syntax and options for InstallUtil.exe. Esta opción agrega el texto devuelto por la propiedad Installer.HelpText de cada componente del instalador al texto de ayuda de InstallUtil.exe.This option adds the text returned by each installer component's Installer.HelpText property to the help text of InstallUtil.exe.
/AssemblyName "assemblyName/AssemblyName "assemblyName

,Version=major.minor.build.revision,Version=major.minor.build.revision

,Culture=locale,Culture=locale

,PublicKeyToken=publicKeyToken",PublicKeyToken=publicKeyToken"
Especifica el nombre seguro de un ensamblado, que debe registrarse en la memoria caché global de ensamblados.Specifies the strong name of an assembly, which must be registered in the global assembly cache. El nombre del ensamblado debe ser completo e incluir la versión, la referencia cultural y el token de clave pública.The assembly name must be fully qualified with the version, culture, and public key token of the assembly. El nombre completo debe ir entre comillas.The fully qualified name must be surrounded by quotes.

Por ejemplo, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" es un nombre de ensamblado completo.For example, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" is a fully qualified assembly name.
/InstallStateDir=[ directoryName ]/InstallStateDir=[ directoryName ] Especifica el directorio del archivo .InstallState que contiene los datos usados para desinstalar el ensamblado.Specifies the directory of the .InstallState file that contains the data used to uninstall the assembly. El directorio predeterminado es el que contiene el ensamblado.The default is the directory that contains the assembly.
/LogFile=[filename]/LogFile=[filename] Especifica el nombre del archivo de registro donde se graba el progreso de la instalación.Specifies the name of the log file where installation progress is recorded. De forma predeterminada, si se omite la opción /LogFile, se crea un archivo de registro denominado assemblyname.InstallLog.By default, if the /LogFile option is omitted, a log file named assemblyname.InstallLog is created. Si se omite filename, no se genera ningún archivo de registro.If filename is omitted, no log file is generated.
/LogToConsole={true|false}/LogToConsole={true|false} Si es true, muestra el resultado en la consola.If true, displays output to the console. Si es false (valor predeterminado), el resultado no se muestra en la consola.If false (the default), suppresses output to the console.
/ShowCallStack Envía la pila de llamadas al archivo de registro si se produce una excepción en cualquier paso de la instalación.Outputs the call stack to the log file if an exception occurs at any point during installation.
/u[ninstall]/u[ninstall] Desinstala los ensamblados especificados.Uninstalls the specified assemblies. A diferencia de las demás opciones, /u se aplica a todos los ensamblados con independencia del lugar donde aparezca la opción en la línea de comandos.Unlike the other options, /u applies to all assemblies regardless of where the option appears on the command line.

Opciones adicionales del instaladorAdditional Installer Options

Los instaladores individuales utilizados en un ensamblado pueden reconocer opciones adicionales a las enumeradas en la sección Opciones.Individual installers used within an assembly may recognize options in addition to those listed in the Options section. Para obtener información sobre estas opciones, ejecute InstallUtil.exe con las rutas de acceso de los ensamblados en la línea de comandos junto con la opción /? o /help.To learn about these options, run InstallUtil.exe with the paths of the assemblies on the command line along with the /? or /help option. Para especificar estas opciones, debe incluirlas en la línea de comandos junto con las opciones reconocidas por InstallUtil.exe.To specify these options, you include them on the command line along with the options recognized by InstallUtil.exe.

Nota

Texto de ayuda en las opciones admitidas por los componentes individuales del instalador devuelto por la propiedad Installer.HelpText.Help text on the options supported by individual installer components is returned by the Installer.HelpText property. Es posible obtener acceso mediante programación a las opciones individuales especificadas en la línea de comandos desde la propiedad Installer.Context.The individual options that have been entered on the command line are accessible programmatically from the Installer.Context property.

Todas las opciones y parámetros de la línea de comandos se escriben en el archivo de registro de la instalación.All options and command-line parameters are written to the installation log file. Sin embargo, si utiliza el parámetro /Password, que reconocen algunos componentes del instalador, la información de la contraseña se reemplazará por ocho asteriscos (*) y no aparecerá en el archivo de registro.However, if you use the /Password parameter, which is recognized by some installer components, the password information will be replaced by eight asterisks (*) and will not appear in the log file.

Importante

En algunos casos, los parámetros pasados al instalador pueden incluir información confidencial o de identificación personal que, de forma predeterminada, se escribe en un archivo de registro de texto sin formato.In some cases, parameters passed to the installer may include sensitive or personally identifiable information, which, by default, is written to a plain text log file. Para impedir este comportamiento, puede suprimir el archivo de registro; para ello, especifique /LogFile= (sin el argumento filename) después de Installutil.exe en la línea de comandos.To prevent this behavior, you can suppress the log file by specifying /LogFile= (with no filename argument) after Installutil.exe on the command line.

ComentariosRemarks

Las aplicaciones de .NET Framework constan de archivos de programa tradicionales y recursos asociados, como colas de mensajes, registros de eventos y contadores de rendimiento que se deben crear al implementar la aplicación..NET Framework applications consist of traditional program files and associated resources, such as message queues, event logs, and performance counters that must be created when the application is deployed. Se pueden utilizar componentes del instalador de un ensamblado para crear estos recursos cuando se instala la aplicación y para quitarlos cuando la aplicación se desinstale.You can use an assembly's installer components to create these resources when your application is installed and to remove them when your application is uninstalled. Installutil.exe detecta y ejecuta estos componentes del instalador.Installutil.exe detects and executes these installer components.

Se pueden especificar varios ensamblados en la misma línea de comandos.You can specify multiple assemblies on the same command line. Las opciones situadas delante de un nombre de ensamblado se aplican a la instalación de dicho ensamblado.Any option that occurs before an assembly name applies to that assembly's installation. Salvo para /u y /AssemblyName, las opciones son acumulativas pero reemplazables.Except for /u and /AssemblyName, options are cumulative but overridable. Es decir, las opciones especificadas para un ensamblado se aplican a todos los ensamblados posteriores salvo que la opción se especifique con un nuevo valor.That is, options specified for one assembly apply to all subsequent assemblies unless the option is specified with a new value.

Si se ejecuta Installutil.exe con un ensamblado sin especificar opciones, la herramienta coloca los tres archivos siguientes en el directorio del ensamblado:If you run Installutil.exe against an assembly without specifying any options, it places the following three files into the assembly's directory:

  • InstallUtil.InstallLog: contiene una descripción general del progreso de la instalación.InstallUtil.InstallLog - Contains a general description of the installation progress.

  • assemblyname.InstallLog: contiene información específica para la fase de confirmación del proceso de la instalación.assemblyname.InstallLog - Contains information specific to the commit phase of the installation process. Para obtener más información sobre la fase de confirmación, vea el método Commit.For more information about the commit phase, see the Commit method.

  • assemblyname.InstallState: contiene los datos usados para desinstalar el ensamblado.assemblyname.InstallState - Contains data used to uninstall the assembly.

Installutil.exe usa la reflexión para inspeccionar los ensamblados especificados y buscar todos los tipos Installer que tengan el atributo System.ComponentModel.RunInstallerAttribute establecido en true.Installutil.exe uses reflection to inspect the specified assemblies and to find all Installer types that have the System.ComponentModel.RunInstallerAttribute attribute set to true. A continuación, la herramienta ejecuta el método Installer.Install o Installer.Uninstall en cada una de las instancias del tipo Installer.The tool then executes either the Installer.Install or the Installer.Uninstall method on each instance of the Installer type. Installutil.exe realiza la instalación de forma transaccional; es decir, si se produce un error en la instalación de uno de los ensamblados, se revierten las instalaciones de los demás ensamblados.Installutil.exe performs installation in a transactional manner; that is, if one of the assemblies fails to install, it rolls back the installations of all other assemblies. El proceso de desinstalación no es transaccional.Uninstall is not transactional.

Installutil.exe no puede instalar ni desinstalar los ensamblados con firma retrasada, pero puede instalar o desinstalar los ensamblados con nombre seguro.Installutil.exe cannot install or uninstall delay-signed assemblies, but it can install or uninstall strong-named assemblies.

A partir de la versión 2.0 de .NET Framework, la versión de 32 bits de Common Language Runtime (CLR) se distribuye solo con la versión de 32 bits de la herramienta de instalación, aunque la versión de 64 bits de CLR se distribuye tanto con la versión de 32 bits como con la versión de 64 bits de dicha herramienta.Starting with the .NET Framework version 2.0, the 32-bit version of the common language runtime (CLR) ships with only the 32-bit version of the Installer tool, but the 64-bit version of the CLR ships with both 32-bit and 64-bit versions of the Installer tool. Cuando utilice el CLR de 64 bits, emplee la herramienta de instalación de 32 bits para instalar los ensamblados de 32 bits y la herramienta de instalación de 64 bits para instalar los ensamblados de 64 bits y del Lenguaje intermedio de Microsoft (MSIL).When using the 64-bit CLR, use the 32-bit Installer tool to install 32-bit assemblies, and the 64-bit Installer tool to install 64-bit and Microsoft intermediate language (MSIL) assemblies. Ambas versiones de la herramienta de instalación se comportan de la misma manera.Both versions of the Installer tool behave the same.

No se puede utilizar Installutil.exe para implementar un servicio de Windows creado mediante C++, ya que Installutil.exe no reconoce el código nativo incrustado generado por el compilador de C++.You cannot use Installutil.exe to deploy a Windows service that was created by using C++, because Installutil.exe cannot recognize the embedded native code that is produced by the C++ compiler. Si intenta implementar un servicio de Windows de C++ con Installutil.exe, se producirá una excepción como BadImageFormatException.If you try to deploy a C++ Windows service with Installutil.exe, an exception such as BadImageFormatException will be thrown. Para trabajar con este escenario, mueva el código de servicio a un módulo de C++ y, a continuación, escriba el objeto del instalador en C# o Visual Basic.To work with this scenario, move the service code to a C++ module, and then write the installer object in C# or Visual Basic.

EjemplosExamples

El comando siguiente muestra una descripción de la sintaxis y las opciones de comando para InstallUtil.exe.The following command displays a description of the command syntax and options for InstallUtil.exe.

installutil /?

El comando siguiente muestra una descripción de la sintaxis y las opciones de comando para InstallUtil.exe.The following command displays a description of the command syntax and options for InstallUtil.exe. También muestra una descripción y la lista de opciones admitidas por los componentes del instalador en myAssembly.exe si el texto de ayuda se ha asignado a la propiedad Installer.HelpText del instalador.It also displays a description and list of options supported by the installer components in myAssembly.exe if help text has been assigned to the installer's Installer.HelpText property.

installutil /? myAssembly.exe

El comando siguiente ejecuta los componentes del instalador en el ensamblado myAssembly.exe.The following command executes the installer components in the assembly myAssembly.exe.

installutil myAssembly.exe

El siguiente comando ejecuta los componentes del instalador en un ensamblado mediante el modificador /AssemblyName y un nombre completo.The following command executes the installer components in an assembly by using the /AssemblyName switch and a fully qualified name.

installutil /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"

El comando siguiente ejecuta los componentes del instalador en un ensamblado especificado por nombre de archivo y en un ensamblado especificado por nombre seguro.The following command executes the installer components in an assembly specified by file name and in an assembly specified by strong name. Tenga en cuenta que todos los ensamblados especificados por nombre de archivo deben preceder a los especificados por nombre seguro en la línea de comandos, ya que la opción /AssemblyName no se puede invalidar.Note that all assemblies specified by file name must precede assemblies specified by strong name on the command line, because the /AssemblyName option cannot be overridden.

installutil myAssembly.exe /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"

El comando siguiente ejecuta los componentes del desinstalador en el ensamblado myAssembly.exe.The following command executes the uninstaller components in the assembly myAssembly.exe.

installutil /u myAssembly.exe

El comando siguiente ejecuta los componentes del desinstalador en los ensamblados myAssembly1.exe y myAssembly2.exe.The following command executes the uninstaller components in the assemblies myAssembly1.exe and myAssembly2.exe.

installutil myAssembly1.exe /u myAssembly2.exe

Dado que la posición de la opción /u en la línea de comandos no es importante, esta es equivalente al siguiente comando.Because the position of the /u option on the command line is not important, this is equivalent to the following command.

installutil /u myAssembly1.exe myAssembly2.exe

El comando siguiente ejecuta los instaladores en el ensamblado myAssembly.exe y especifica la información del progreso que se escribirá en myLog.InstallLog.The following command executes the installers in the assembly myAssembly.exe and specifies that progress information will be written to myLog.InstallLog.

installutil /LogFile=myLog.InstallLog myAssembly.exe

El comando siguiente ejecuta los instaladores en el ensamblado myAssembly.exe, especifica que la información de progreso debe escribirse en myLog.InstallLog y usa la opción /reg personalizada de los instaladores para especificar las actualizaciones que se deben realizar en el Registro del sistema.The following command executes the installers in the assembly myAssembly.exe, specifies that progress information should be written to myLog.InstallLog, and uses the installers' custom /reg option to specify that updates should be made to the system registry.

installutil /LogFile=myLog.InstallLog /reg=true myAssembly.exe

El comando siguiente ejecuta los instaladores en el ensamblado myAssembly.exe, usa la opción /email personalizada del instalador para especificar la dirección de correo electrónico del usuario e impide que los resultados se envíen al archivo de registro.The following command executes the installers in the assembly myAssembly.exe, uses the installer's custom /email option to specify the user's email address, and suppresses output to the log file.

installutil /LogFile= /email=admin@mycompany.com myAssembly.exe

El comando siguiente escribe el progreso de instalación de myAssembly.exe en myLog.InstallLog y el progreso de myTestAssembly.exe en myTestLog.InstallLog.The following command writes the installation progress for myAssembly.exe to myLog.InstallLog and writes the progress for myTestAssembly.exe to myTestLog.InstallLog.

installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile=myTestLog.InstallLog myTestAssembly.exe

Vea tambiénSee also