Installutil.exe (Herramienta Installer)
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. Esta herramienta funciona junto con clases del espacio de nombres System.Configuration.Install.
Esta herramienta se instala automáticamente con Visual Studio. Para ejecutar la herramienta, use el Símbolo del sistema para desarrolladores de Visual Studio o PowerShell de Visual Studio para desarrolladores.
En el símbolo del sistema, escriba lo siguiente:
Sintaxis
installutil [/u[ninstall]] [options] assembly [[options] assembly] ...
Parámetros
Argumento | Descripción |
---|---|
assembly |
Nombre de archivo del ensamblado en el 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 las opciones y la sintaxis de los comandos para la herramienta. |
/help assemblyO bien /? 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. Esta opción agrega el texto devuelto por la propiedad Installer.HelpText de cada componente del instalador al texto de ayuda de InstallUtil.exe. Por ejemplo, si ServiceProcessInstaller.Account es User , las opciones /username y /password estarán disponibles. |
/AssemblyName "assemblyName,Version=major.minor.build.revision ,Culture=locale ,PublicKeyToken=publicKeyToken" |
Especifica el nombre seguro de un ensamblado, que debe registrarse en la memoria caché global de ensamblados. El nombre del ensamblado debe ser completo e incluir la versión, la referencia cultural y el 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=[ directoryName ] |
Especifica el directorio del archivo .InstallState que contiene los datos usados para desinstalar el ensamblado. El directorio predeterminado es el que contiene el ensamblado. |
/LogFile= [filename] |
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 assemblyname.InstallLog. Si se omite filename, no se genera ningún archivo de registro. |
/LogToConsole ={true |false } |
Si es true , muestra el resultado en la consola. Si es false (valor predeterminado), el resultado no se muestra en 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, debe incluirlas en la línea de comandos junto con las opciones reconocidas por InstallUtil.exe.
Nota
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 usa el /Password
parámetro , que algunos componentes del instalador reconocen, la información de contraseña se reemplaza por ocho asteriscos (*) y no aparecerá en el archivo de registro.
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. Para evitar este comportamiento, puede suprimir el archivo de registro especificando /LogFile=
(sin argumento de nombre de archivo ) 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 cuando se implementa la aplicación. 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. 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.
- assemblyname.InstallLog: contiene información específica para la fase de confirmación del proceso de la instalación. Para obtener más información sobre la fase de confirmación, vea el método Commit.
- assemblyname.InstallState: contiene los datos usados para desinstalar el ensamblado.
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
. 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 se produce un error en la instalación de uno de los ensamblados, se revierten las instalaciones de 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.
La versión de 32 bits de Common Language Runtime (CLR) se incluye solo con la versión de 32 bits de la herramienta Installer, pero la versión de 64 bits de CLR se incluye tanto con versiones de 32 bits como de 64 bits de la herramienta Instalador. Al usar CLR de 64 bits, use la herramienta instalador de 32 bits para instalar ensamblados de 32 bits y la herramienta instalador de 64 bits para instalar ensamblados de lenguaje intermedio común (CIL) de 64 bits. Ambas versiones de la herramienta de instalación se comportan de la misma manera.
No puede usar 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++. 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 del 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 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.
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 e impide que los resultados se envíen 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