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. |
/help montagem-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.InstallLog
e 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