Installutil.exe (Ferramenta de Instalação)Installutil.exe (Installer Tool)

A ferramenta Instalador é um utilitário de linha de comando que permite instalar e desinstalar recursos de servidor executando-se os componentes do instalador em assemblies especificados.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. Essa ferramenta funciona com classes no namespace System.Configuration.Install.This tool works in conjunction with classes in the System.Configuration.Install namespace.

Essa ferramenta é instalada automaticamente com o Visual Studio.This tool is automatically installed with Visual Studio. Para executar a ferramenta, use o Prompt de Comando do Desenvolvedor para Visual Studio (ou o Prompt de Comando do Visual Studio no Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Para obter mais informações, consulte Prompts de Comando.For more information, see Command Prompts.

No prompt de comando, digite o seguinte:At the command prompt, type the following:

SintaxeSyntax

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

ParâmetrosParameters

ArgumentoArgument DescriçãoDescription
assembly O nome do arquivo do assembly no qual os componentes do instalador devem ser executados.The file name of the assembly in which to execute the installer components. Omita esse parâmetro se você quiser especificar o nome forte do assembly usando a opção /AssemblyName.Omit this parameter if you want to specify the assembly's strong name by using the /AssemblyName option.

OpçõesOptions

OpçãoOption DescriçãoDescription
/h[elp]

- ou --or-

/?
Exibe sintaxe de comando e opções para a ferramenta.Displays command syntax and options for the tool.
/help assembly/help assembly

- ou --or-

/? assembly/? assembly
Exibe opções adicionais reconhecidas por instaladores individuais dentro do assembly especificado, com a sintaxe do comando e as opções de InstallUtil.exe.Displays additional options recognized by individual installers within the specified assembly, along with command syntax and options for InstallUtil.exe. Essa opção adiciona o texto retornado pela propriedade Installer.HelpText de cada componente do instalador para o texto de ajuda 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 o nome forte de um assembly, que deve ser registrado no cache de assembly global.Specifies the strong name of an assembly, which must be registered in the global assembly cache. O nome do assembly deve ser totalmente qualificado com a versão, a cultura e o token de chave pública do assembly.The assembly name must be fully qualified with the version, culture, and public key token of the assembly. O nome totalmente qualificado deve estar entre aspas.The fully qualified name must be surrounded by quotes.

Por exemplo, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" é um nome de assembly totalmente qualificado.For example, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" is a fully qualified assembly name.
/InstallStateDir=[ directoryName ]/InstallStateDir=[ directoryName ] Especifica o diretório do arquivo .InstallState que contém os dados usados para desinstalar o assembly.Specifies the directory of the .InstallState file that contains the data used to uninstall the assembly. O padrão é o diretório que contém o assembly.The default is the directory that contains the assembly.
/LogFile=[filename]/LogFile=[filename] Especifica o nome do arquivo de log em que o andamento da instalação é registrado.Specifies the name of the log file where installation progress is recorded. Por padrão, se a opção /LogFile for omitida, um arquivo de log chamado assemblyname.InstallLog será criado.By default, if the /LogFile option is omitted, a log file named assemblyname.InstallLog is created. Se filename for omitido, nenhum arquivo de log será gerado.If filename is omitted, no log file is generated.
/LogToConsole={true|false}/LogToConsole={true|false} Se true, exibirá a saída no console.If true, displays output to the console. Se false (o padrão), suprimirá a saída no console.If false (the default), suppresses output to the console.
/ShowCallStack A saída da pilha de chamadas será para o arquivo de log se ocorrer uma exceção a qualquer momento durante a instalação.Outputs the call stack to the log file if an exception occurs at any point during installation.
/u[ninstall]/u[ninstall] Desinstala os assemblies especificados.Uninstalls the specified assemblies. Diferentemente das outras opções, /u se aplica a todos os assemblies, independentemente de onde a opção seja exibida na linha de comando.Unlike the other options, /u applies to all assemblies regardless of where the option appears on the command line.

Opções Adicionais do InstaladorAdditional Installer Options

Os instaladores individuais usados em um assembly podem reconhecer opções além das listadas na seção Opções.Individual installers used within an assembly may recognize options in addition to those listed in the Options section. Para saber mais sobre essas opções, execute InstallUtil.exe com os caminhos dos assemblies na linha de comando com a opção /? ou /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 essas opções, você as inclui na linha de comando com as opções reconhecidas por InstallUtil.exe.To specify these options, you include them on the command line along with the options recognized by InstallUtil.exe.

Observação

O texto da ajuda nas opções compatíveis com componentes do instalador individuais é retornado pela propriedade Installer.HelpText.Help text on the options supported by individual installer components is returned by the Installer.HelpText property. As opções individuais que foram inseridas na linha de comando são acessíveis programaticamente com base na propriedade Installer.Context.The individual options that have been entered on the command line are accessible programmatically from the Installer.Context property.

Todas as opções e os parâmetros de linha de comando são gravados no arquivo de log da instalação.All options and command-line parameters are written to the installation log file. No entanto, se você usar o parâmetro /Password, reconhecido por alguns componentes do instalador, as informações da senha serão substituídas por oito asteriscos (*) e não serão exibidas no arquivo de log.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

Em alguns casos, os parâmetros passados para o instalador podem incluir informações confidenciais ou de identificação pessoal que, por padrão, são gravadas em um arquivo de log de texto sem formatação.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 evitar esse comportamento, é possível suprimir o arquivo de log especificando /LogFile= (sem nenhum argumento filename) após Installutil.exe na linha de comando.To prevent this behavior, you can suppress the log file by specifying /LogFile= (with no filename argument) after Installutil.exe on the command line.

ComentáriosRemarks

Os aplicativos do .NET Framework consistem em arquivos de programa tradicionais e recursos associados como, por exemplo, filas de mensagens, logs de eventos e contadores de desempenho que devem ser criados quando o aplicativo é implantado..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. É possível usar componentes do instalador de um assembly para criar esses recursos quando o aplicativo é instalado e para removê-los quando o aplicativo é desinstalado.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 e executa esses componentes do instalador.Installutil.exe detects and executes these installer components.

É possível especificar vários assemblies na mesma linha de comando.You can specify multiple assemblies on the same command line. Qualquer opção ocorrida antes de um nome de assembly se aplica à instalação desse assembly.Any option that occurs before an assembly name applies to that assembly's installation. Com exceção de /u e /AssemblyName, as opções são cumulativas, mas substituíveis.Except for /u and /AssemblyName, options are cumulative but overridable. Ou seja, as opções especificadas para um assembly se aplicam a todos os assemblies subsequentes, a menos que a opção seja especificada com um valor novo.That is, options specified for one assembly apply to all subsequent assemblies unless the option is specified with a new value.

Se você executar Installutil.exe em um assembly sem especificar nenhuma opção, ele colocará estes três arquivos no diretório do assembly: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 - Contém uma descrição geral do andamento da instalação.InstallUtil.InstallLog - Contains a general description of the installation progress.

  • assemblyname.InstallLog – Contém informações específicas para a fase de confirmação do processo de instalação.assemblyname.InstallLog - Contains information specific to the commit phase of the installation process. Para obter mais informações sobre a fase de confirmação, consulte o método Commit.For more information about the commit phase, see the Commit method.

  • assemblyname.InstallState – Contém dados usados para desinstalar o assembly.assemblyname.InstallState - Contains data used to uninstall the assembly.

Installutil.exe usa reflexão para inspecionar os assemblies especificados e encontrar todos os tipos de Installer que têm o atributo System.ComponentModel.RunInstallerAttribute definido como 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. Em seguida, a ferramenta executa o método Installer.Install ou Installer.Uninstall em cada instância do tipo de Installer.The tool then executes either the Installer.Install or the Installer.Uninstall method on each instance of the Installer type. Installutil.exe realiza a instalação de maneira transacional; ou seja, se um dos assemblies não for instalado, ele reverterá as instalações de todos os outros assemblies.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. A desinstalação não é transacional.Uninstall is not transactional.

Installutil.exe não pode instalar ou desinstalar assemblies assinados com atraso, mas pode instalar ou desinstalar assemblies de nome forte.Installutil.exe cannot install or uninstall delay-signed assemblies, but it can install or uninstall strong-named assemblies.

Desde o .NET Framework versão 2.0, a versão 32 bits do CLR (Common Language Runtime) acompanha apenas a versão 32 bits da ferramenta Instalador, mas a versão 64 bits do CLR acompanha as versões 32 e 64 bits da ferramenta Instalador.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. Ao usar o CLR 64 bits, use a ferramenta Instalador 32 bits para instalar assemblies 32 bits, e a ferramenta Instalador 64 bits para instalar assemblies 64 bits e MSIL (Microsoft Intermediate Language).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 as versões da ferramenta Instalador se comportam da mesma forma.Both versions of the Installer tool behave the same.

Não é possível usar Installutil.exe para implantar um serviço do Windows criado usando-se o C++, porque Installutil.exe pode não reconhecer o código nativo inserido produzido pelo compilador do 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. Se você tentar implantar um serviço do Windows do C++ com Installutil.exe como, por exemplo, BadImageFormatException uma exceção será acionada.If you try to deploy a C++ Windows service with Installutil.exe, an exception such as BadImageFormatException will be thrown. Para trabalhar com esse cenário, mova o código de serviço para o módulo do C++ e, em seguida, grave o objeto do instalador no C# ou no 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.

ExemplosExamples

O comando a seguir exibe uma descrição da sintaxe e das opções de comando para InstallUtil.exe.The following command displays a description of the command syntax and options for InstallUtil.exe.

installutil /?

O comando a seguir exibe uma descrição da sintaxe e das opções de comando para InstallUtil.exe.The following command displays a description of the command syntax and options for InstallUtil.exe. Ele também exibirá uma descrição e uma lista de opções com suporte pelos componentes do instalador em myAssembly.exe se o texto de ajuda tiver sido atribuído à propriedade Installer.HelpText do 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

O comando a seguir executa os componentes do instalador no assembly myAssembly.exe.The following command executes the installer components in the assembly myAssembly.exe.

installutil myAssembly.exe

O comando a seguir executa os componentes do instalador em um assembly usando-se a opção /AssemblyName e um nome totalmente qualificado.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"

O comando a seguir executa os componentes do instalador em um assembly especificado pelo nome de arquivo e em um assembly especificado pelo nome forte.The following command executes the installer components in an assembly specified by file name and in an assembly specified by strong name. Todos os assemblies especificados pelo nome de arquivo devem anteceder assemblies especificados pelo nome forte na linha de comando, porque a opção /AssemblyName não pode ser substituída.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"

O comando a seguir executa os componentes do desinstalador no assembly myAssembly.exe.The following command executes the uninstaller components in the assembly myAssembly.exe.

installutil /u myAssembly.exe

O comando a seguir executa os componentes do desinstalador nos assemblies myAssembly1.exe e myAssembly2.exe.The following command executes the uninstaller components in the assemblies myAssembly1.exe and myAssembly2.exe.

installutil myAssembly1.exe /u myAssembly2.exe

Como a posição da opção /u na linha de comando não é importante, ela equivale ao comando a seguir.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

O comando a seguir executa os instaladores no assembly myAssembly.exe e especifica que as informações de andamento serão gravadas em 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

O comando a seguir executa os instaladores no assembly myAssembly.exe, especifica que as informações de andamento devem ser gravadas em myLog.InstallLog e usa a opção /reg personalizada dos instaladores para especificar que as atualizações devem ser feitas no Registro do 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

O comando a seguir executa os instaladores no assembly myAssembly.exe, usa a opção /email personalizada do instalador para especificar o endereço de email do usuário e suprime saída para o arquivo de log.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

O comando a seguir grava o andamento da instalação de myAssembly.exe em myLog.InstallLog e grava o andamento de myTestAssembly.exe em 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

Consulte tambémSee also