Partilhar via


Installutil.exe (Ferramenta de instalação)

A ferramenta Installer é um utilitário de linha de comando que permite instalar e desinstalar recursos do servidor executando os componentes do instalador em assemblies especificados. Essa ferramenta funciona em conjunto com classes no System.Configuration.Install namespace.

Esta ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Visual Studio Developer Command Prompt ou o Visual Studio Developer PowerShell.

Na linha de comandos, escreva o seguinte:

Sintaxe

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

Parâmetros

Argumento Description
assembly O nome do arquivo do assembly no qual executar os componentes do instalador. Omita esse parâmetro se desejar especificar o nome forte do assembly usando a /AssemblyName opção.

Opções

Opção Description
/h[elp]

-or-

/?
Exibe a sintaxe do comando e as opções da ferramenta.
/helpmontagem

-or-

/?montagem
Exibe opções adicionais reconhecidas por instaladores individuais dentro do assembly especificado, juntamente com sintaxe de comando e opções para InstallUtil.exe. Esta opção adiciona o texto retornado pela propriedade de Installer.HelpText cada componente do instalador ao texto de ajuda do InstallUtil.exe. Por exemplo, se ServiceProcessInstaller.Account for User, as /username opções e /password estão disponíveis.
/AssemblyName "assemblyName

,Version=major.minor.build.revision

,Cultura=localidade

,PublicKeyToken=publicKeyToken"
Especifica o nome forte de um assembly, que deve ser registrado no cache global do assembly. O nome do assembly deve ser totalmente qualificado com a versão, a cultura e o token de chave pública do assembly. O nome totalmente qualificado deve estar entre aspas.

Por exemplo, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" é um nome de assembly totalmente qualificado.
/InstallStateDir=[nome_do_diretório ] Especifica o diretório do . InstallState que contém os dados usados para desinstalar o assembly. O padrão é o diretório que contém o assembly.
/LogFile=[nome do arquivo] Especifica o nome do arquivo de log onde o progresso da instalação é registrado. Por padrão, se a /LogFile opção for omitida, um arquivo de log chamado assemblyname. InstallLog é criado. Se o nome do arquivo for omitido, nenhum arquivo de log será gerado.
/LogToConsole={true|false} Se true, exibe a saída para o console. Se false (o padrão), suprime a saída para o console.
/ShowCallStack Envia a pilha de chamadas para o arquivo de log se ocorrer uma exceção em qualquer ponto durante a instalação.
/u[ninstall] Desinstala os assemblies especificados. Ao contrário das outras opções, /u aplica-se a todos os assemblies, independentemente de onde a opção aparece na linha de comando.

Opções adicionais do instalador

Os instaladores individuais usados em um conjunto podem reconhecer opções além daquelas listadas na seção Opções . Para saber mais sobre essas opções, execute InstallUtil.exe com os caminhos dos assemblies na linha de comando junto com a /? opção ou /help . Para especificar essas opções, inclua-as na linha de comando junto com as opções reconhecidas por InstallUtil.exe.

Nota

O texto de ajuda sobre as opções suportadas por componentes individuais do Installer.HelpText instalador é retornado pela propriedade. As opções individuais que foram inseridas na linha de comando são acessíveis programaticamente a partir da Installer.Context propriedade.

Todas as opções e parâmetros de linha de comando são gravados no arquivo de log de instalação. No entanto, se você usar o /Password parâmetro, que é reconhecido por alguns componentes do instalador, as informações de senha são substituídas por oito asteriscos (*) e não aparecerão no arquivo de log.

Importante

Em alguns casos, os parâmetros passados para o instalador podem incluir informações confidenciais ou pessoalmente identificáveis, que, por padrão, são gravadas em um arquivo de log de texto simples. Para evitar esse comportamento, você pode suprimir o arquivo de log especificando /LogFile= (sem argumento de nome de arquivo ) na linha de comando.

Observações

Os aplicativos do .NET Framework consistem em arquivos de programa tradicionais e recursos associados, como filas de mensagens, logs de eventos e contadores de desempenho, que devem ser criados quando o aplicativo é implantado. Você pode usar os componentes do instalador de um assembly para criar esses recursos quando o aplicativo estiver instalado e para removê-los quando o aplicativo for desinstalado. Installutil.exe deteta e executa esses componentes do instalador.

Você pode especificar vários assemblies na mesma linha de comando. Qualquer opção que ocorra antes de um nome de assembly se aplica à instalação desse assembly. Exceto para /u e /AssemblyName, as opções são cumulativas, mas substituíveis. 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 novo valor.

Se você executar Installutil.exe em um assembly sem especificar nenhuma opção, ele colocará os três arquivos a seguir no diretório do assembly:

  • InstallUtil.InstallLog - Contém uma descrição geral do progresso da instalação.
  • assemblyname. InstallLog - Contém informações específicas para a fase de confirmação do processo de instalação. Para obter mais informações sobre a fase de confirmação, consulte o Commit método.
  • assemblyname. InstallState - Contém dados usados para desinstalar o assembly.

Installutil.exe usa reflexão para inspecionar os assemblies especificados e localizar todos os Installer tipos que têm o System.ComponentModel.RunInstallerAttribute atributo definido como true. Em seguida, a ferramenta executa o Installer.Install ou o Installer.Uninstall método em cada instância do Installer tipo. Installutil.exe realiza a instalação de forma transacional; ou seja, se um dos assemblies falhar na instalação, ele reverterá as instalações de todos os outros assemblies. A desinstalação não é transacional.

Installutil.exe não pode instalar ou desinstalar assemblies assinados com atraso, mas pode instalar ou desinstalar assemblies de nome forte.

A versão de 32 bits do Common Language Runtime (CLR) é fornecida apenas com a versão de 32 bits da ferramenta Installer, mas a versão de 64 bits do CLR é fornecida com as versões de 32 bits e 64 bits da ferramenta Installer. Ao usar o CLR de 64 bits, use a ferramenta Installer de 32 bits para instalar assemblies de 32 bits e a ferramenta Installer de 64 bits para instalar assemblies de 64 bits e Common Intermediate Language (CIL). Ambas as versões da ferramenta Installer se comportam da mesma forma.

Você não pode usar Installutil.exe para implantar um serviço do Windows que foi criado usando C++, porque Installutil.exe não reconhece o código nativo incorporado produzido pelo compilador C++. Se você tentar implantar um serviço C++ do Windows com Installutil.exe, uma exceção como BadImageFormatException será lançada. Para trabalhar com esse cenário, mova o código de serviço para um módulo C++ e, em seguida, escreva o objeto do instalador em C# ou Visual Basic.

Exemplos

O comando a seguir exibe uma descrição da sintaxe do comando e opções para InstallUtil.exe.

installutil /?

O comando a seguir exibe uma descrição da sintaxe do comando e opções para InstallUtil.exe. Ele também exibe uma descrição e uma lista de opções suportadas pelos componentes do instalador se myAssembly.exe o texto de ajuda tiver sido atribuído à propriedade do Installer.HelpText instalador.

installutil /? myAssembly.exe

O comando a seguir executa os componentes do instalador na montagem myAssembly.exe.

installutil myAssembly.exe

O comando a seguir executa os componentes do instalador em uma montagem usando o /AssemblyName switch e um nome totalmente qualificado.

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 por nome de arquivo e em um assembly especificado por nome forte. Observe que todos os assemblies especificados pelo nome do arquivo devem preceder os assemblies especificados pelo nome forte na linha de comando, porque a /AssemblyName opção não pode ser substituída.

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

O comando a seguir executa os componentes do desinstalador na montagem myAssembly.exe.

installutil /u myAssembly.exe

O comando a seguir executa os componentes do desinstalador nos assemblies myAssembly1.exe e myAssembly2.exe.

installutil myAssembly1.exe /u myAssembly2.exe

Como a posição da opção na linha de /u comando não é importante, isso é equivalente ao comando a seguir.

installutil /u myAssembly1.exe myAssembly2.exe

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

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

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

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

O comando a seguir grava o progresso da instalação para myAssembly.exe e myLog.InstallLog grava o progresso para myTestAssembly.exe .myTestLog.InstallLog

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

Consulte também