Installutil.exe (Herramienta Installer)

Esta herramienta 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 especificados. Esta herramienta funciona junto con clases del espacio de nombres System.Configuration.Install.

Esta herramienta se instala automáticamente con Visual Studio y con el SDK de Windows. Para ejecutar la herramienta, se recomienda usar el símbolo del sistema de Visual Studio o del SDK de Windows (shell de CMD). Estas utilidades permiten ejecutar la herramienta fácilmente, sin navegar a la carpeta de instalación. Para obtener más información, vea Símbolos del sistema del SDK de Windows y Visual Studio.

  • Si tiene instalado Visual Studio en el equipo: en la barra de tareas, haga clic en Start, All Programs, Visual Studio y Visual Studio Tools y, a continuación, haga clic en Visual Studio Command Prompt.

    O bien

    Si tiene el SDK de Windows instalado en el equipo: en la barra de tareas, haga clic en Start, All Programs, haga clic en la carpeta del SDK de Windows y, a continuación, haga clic en Command Prompt (o CMD Shell).

  • En el símbolo del sistema, escriba:

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

Parámetros

Argumento

Descripción

assembly

Nombre de archivo del ensamblado en que se ejecutan los componentes del instalador. Omita este parámetro si desea especificar el nombre seguro del ensamblado mediante la opción /AssemblyName.

Opciones

Opción

Descripción

/h[elp]

O bien

/?

Muestra la sintaxis de comandos y opciones para la herramienta.

/help ensamblado

O bien

/? ensamblado

Muestra opciones adicionales reconocidas por instaladores individuales dentro del ensamblado especificado, junto con sintaxis de comandos y opciones para InstallUtil.exe. Esta opción agrega el texto devuelto por la propiedad Installer.HelpText de cada componente de instalación al texto de ayuda de InstallUtil.exe.

/AssemblyName "assemblyName

,Version=principal.secundario.compilación.revisión

,Culture=configuración regional

,PublicKeyToken=tokenClavePública"

Especifica el nombre seguro de un ensamblado, que debe registrarse en la memoria caché global de ensamblados. El nombre del ensamblado debe ser completo con la versión, referencia cultural y el símbolo (token) de clave pública. El nombre completo debe ir entre comillas.

Por ejemplo, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" es un nombre de ensamblado completo.

/InstallStateDir=[NombreDirectorio]

Especifica el directorio del archivo .InstallState que contiene los datos usados para desinstalar el ensamblado. El directorio predeterminado es aquel que contiene el ensamblado.

/LogFile=[nombreArchivo]

Especifica el nombre del archivo de registro donde se graba el progreso de la instalación. De forma predeterminada, si se omite la opción /LogFile, se crea un archivo de registro denominado nombreEnsamblado .InstallLog. Si se omite filename, no se genera ningún archivo de registro.

/LogToConsole={true|false}

Si es true, muestra la salida a la consola. Si se especifica false (valor predeterminado), suprime los resultados de la consola.

/ShowCallStack

Envía la pila de llamadas al archivo de registro si se produce una excepción en cualquier paso de la instalación.

/u[ninstall]

Desinstala los ensamblados especificados. 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.

Opciones adicionales del instalador

Los instaladores individuales utilizados en un ensamblado pueden reconocer opciones adicionales a las enumeradas en la sección Opciones. 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. Para especificar estas opciones, se incluyen en la línea de comandos junto con las opciones reconocidas por InstallUtil.exe.

NotaNota

Texto de ayuda en las opciones admitidas por los componentes individuales del instalador devuelto por la propiedad Installer.HelpText.Es posible obtener acceso mediante programación a las opciones individuales especificadas en la línea de comandos desde la propiedad Installer.Context.

Todas las opciones y parámetros de la línea de comandos se escriben en el archivo de registro de la instalación. Sin embargo, si utiliza el parámetro /Password, que reconoce algunos componentes del instalador, la información de contraseña se reemplazará por ocho asteriscos (*) y no aparecerá en el archivo de registro.

Nota importanteImportante

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.Para impedir este comportamiento, puede suprimir el archivo de registro; para ello, especifique /LogFile= (sin el argumento nombreDeArchivo) después de Installutil.exe en la línea de comandos.

Comentarios

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. Se pueden utilizar componentes del instalador de un ensamblado para que estos recursos se creen cuando la aplicación se instale y se quiten cuando la aplicación se desinstale. Installutil.exe detecta y ejecuta estos componentes del instalador.

Se pueden especificar varios ensamblados en la misma línea de comandos. Las opciones situadas delante de un nombre de ensamblado se aplican a la instalación de dicho ensamblado. Salvo para /u y /AssemblyName, las opciones son acumulativas pero reemplazables. 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.

Si se ejecuta Installutil.exe con un ensamblado sin especificar opciones, la herramienta coloca los tres archivos siguientes en el directorio del ensamblado:

  • InstallUtil.InstallLog: contiene una descripción general del progreso de la instalación.

  • nombreDeEnsamblado.InstallLog: contiene información específica correspondiente a la fase de confirmación del proceso de instalación. Para obtener más información sobre la fase de confirmación, vea el método Commit.

  • nombreEnsamblado.InstallState: contiene los datos utilizados para desinstalar el ensamblado.

Installutil.exe usa la reflexión para inspeccionar los ensamblados especificados y buscar todos los tipos de Installer que tienen el atributo System.ComponentModel.RunInstallerAttribute establecido en true. A continuación, la herramienta ejecuta el método Installer.Install o Installer.Uninstall en cada una de las instancias del tipo Installer. Installutil.exe realiza la instalación de forma transaccional; es decir, si no se produce la instalación de uno de los ensamblados, se revierten las instalaciones de todos los demás ensamblados. El proceso de desinstalación no es transaccional.

Installutil.exe no puede instalar ni desinstalar los ensamblados con firma retrasada, pero puede instalar o desinstalar los ensamblados con nombre seguro.

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 Installer, pero 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. Cuando utilice el CLR de 64 bits, emplee la herramienta Installer de 32 bits para instalar los ensamblados de 32 bits y la herramienta Installer de 64 bits para instalar los ensamblados de 64 bits y del Lenguaje intermedio de Microsoft (MSIL). Ambas versiones de la herramienta Installer se comportan de la misma manera.

No se puede utilizar Installutil.exe para implementar un servicio de Windows creado mediante C++, ya que Installutil.exe no puede reconocer el código nativo incrustado generado por el compilador de C++. Si intenta implementar un servicio de Windows de C++ con Installutil.exe, se producirá una excepción como BadImageFormatException. Para trabajar con este escenario, mueva el código de servicio a un módulo de C++ y, a continuación, escriba el objeto instalador en C# o Visual Basic.

Ejemplos

El comando siguiente muestra una descripción de la sintaxis y las opciones de comando para InstallUtil.exe.

installutil /?

El comando siguiente muestra una descripción de la sintaxis y las opciones de comando para InstallUtil.exe. También muestra una descripción y una 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.

installutil /? myAssembly.exe

El comando siguiente ejecuta los componentes del instalador en el ensamblado myAssembly.exe.

installutil myAssembly.exe

El siguiente comando ejecuta los componentes del instalador en un ensamblado mediante el modificador /AssemblyName y un nombre completo.

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. 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.

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.

installutil /u myAssembly.exe 

El comando siguiente ejecuta los componentes del desinstalador en los ensamblados myAssembly1.exe y 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.

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.

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.

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 y suprime la salida al archivo de registro.

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.

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

Vea también

Referencia

System.Configuration.Install

Símbolos del sistema del SDK de Windows y Visual Studio

Otros recursos

Herramientas de .NET Framework

Historial de cambios

Fecha

Historial

Motivo

1 de abril de 2011

Se agregó información sobre el uso de los símbolos del sistema de Visual Studio y del SDK de Windows.

Mejora de la información.