InstallUtil (ferramenta Installer)
A ferramenta Installer é um utilitário de linha de comando que permite que você instalar e desinstalar os recursos do servidor executando os componentes de instalador em assemblies especificados. Essa ferramenta funciona em conjunto com classes de System.Configuration.Install namespace.
A ferramenta Installer é instalada automaticamente com o Visual Studio. Para iniciar o instalador, use o Prompt de comando Visual Studio. No prompt de comando, digite o seguinte:
installutil [/u[ninstall]] [options] assembly [[options] assembly] ...
Parâmetros
Argumento |
Descrição |
---|---|
assembly |
O nome de arquivo do assembly no qual executar os componentes do installer. Omitir esse parâmetro se desejar especificar o nome forte do assembly usando o /AssemblyName opção. |
Opções
Opção |
Descrição |
---|---|
/h[elp] - ou - /? |
Exibe sintaxe de comando e opções para a ferramenta. |
/help assembly - ou - /? assembly |
Exibe opções adicionais reconhecidas pelo instaladores individuais dentro do assembly especificado, juntamente com a sintaxe de comando e opções para InstallUtil. Esta opção adiciona o texto retornado por cada componente de instalador Installer.HelpText propriedade para o texto de Ajuda do InstallUtil. |
/AssemblyName"assemblyName Versão =major.minor.build.revision Cultura =localidade PublicKeyToken =publicKeyToken" |
Especifica o nome forte de um assembly, deve ser registrado no global assembly cache. O nome do assembly deve ser totalmente qualificado com a versão, cultura e token de chave pública do assembly. O nome totalmente qualificado deve estar entre aspas. Por exemplo, "myAssembly, Culture = neutral, PublicKeyToken = 0038abc9deabfle5, versão = a 4.0.0.0" é um nome de assembly totalmente qualificado. |
/InstallStateDir=[directoryName] |
Especifica o diretório do.Arquivo InstallState que contém os dados usados para desinstalar o assembly. O padrão é o diretório que contém o assembly. |
/LogFile=filename |
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 nome de arquivo é omitido, nenhum arquivo de log é gerado. |
/LogToConsole={true|false} |
Se true, que exibe a saída do console. Se false (padrão), suprime a saída do console. |
/ShowCallStack |
Produz a pilha de chamadas para o arquivo de log se ocorrer uma exceção a qualquer momento durante a instalação. |
/u[ninstall] |
Desinstala as montagens especificadas. Ao contrário de outras opções, /u se aplica a todos os assemblies, independentemente de onde a opção aparece na linha de comando. |
Opções adicionais de instalador
Instaladores individuais usados dentro de um assembly podem reconhecer opções além das listadas na Opções seção. Para saber sobre essas opções, execute o InstallUtil com os caminhos dos assemblies na linha de comando, juntamente com o /? ou /help opção. Para especificar essas opções, incluí-los na linha de comando, juntamente com as opções reconhecidas pelo InstallUtil.
Observação
Texto de ajuda sobre as opções suportadas pelos componentes do installer individuais é retornado pelo Installer.HelpText propriedade.As opções individuais que foram inseridas na linha de comando são acessíveis através de programação a partir de 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 serã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 sigilosas ou identificáveis pessoalmente, que, por padrão, estão escritas em um arquivo de log de texto sem formatação.Para evitar esse comportamento, você pode suprimir o arquivo de log, especificando /LogFile= (com não nome de arquivo argumento) após InstallUtil na linha de comando. |
Comentários
.Aplicativos do NET Framework consistem em arquivos de programa tradicional e os recursos associados, como, por exemplo, filas de mensagens, logs de eventos e contadores de desempenho que devem ser criados quando o aplicativo for implantado. Você pode usar os componentes do instalador do assembly para criar esses recursos quando seu aplicativo é instalado e removê-los quando seu aplicativo é desinstalado. InstallUtil detecta e executa esses componentes do installer.
Você pode especificar vários conjuntos de módulos na mesma linha de comando. Qualquer opção que ocorre antes do nome do assembly aplica-se a instalação do assembly. Exceto para /u e /AssemblyName, opções são cumulativas, mas é substituível. Isto é, opções especificadas para um assembly se aplicam a todos os módulos subseqüentes, a menos que a opção seja especificada com um novo valor.
Se você executar InstallUtil contra um assembly sem especificar quaisquer opções, ele coloca os seguintes três arquivos 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 os dados usados para desinstalar o assembly.
InstallUtil usa a reflexão para inspecionar as montagens especificadas e localizar todos os Installer tipos que possuem o System.ComponentModel.RunInstallerAttribute atributo definido como true. A ferramenta executa tanto o Installer.Install ou o Installer.Uninstall método em cada instância da Installer tipo. InstallUtil realiza a instalação de uma maneira transacional; ou seja, se um dos assemblies não instalar, ele reverte as instalações de todos os outros assemblies. Desinstalar não é transacional.
InstallUtil não é possível instalar ou desinstalar os assemblies assinados de atraso, mas ele pode instalar ou desinstalar os assemblies de nome forte.
Começando com o.NET Framework versão 2.0, a versão de 32 bits da common language runtime (CLR) acompanha somente a versão de 32 bits da ferramenta Installer, mas a versão de 64 bits dos navios CLR com versões de 32 e 64 bits da ferramenta Installer. Ao usar o CLR de 64 bits, use a ferramenta de instalação de 32 bits para instalar assemblies de 32 bits e a ferramenta de instalador de 64 bits para instalar a 64-bit e assemblies do Microsoft intermediate language (MSIL). Ambas as versões da ferramenta Installer se comportam da mesma.
É possível usar InstallUtil para implantar um serviço do Windows foi criado usando C++, porque o InstallUtil não reconhece o código nativo incorporado que é produzido pelo compilador C++. Se você tentar implantar um serviço do Windows em C++ com InstallUtil, 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 de C++ e, em seguida, escrever o objeto de instalador em C# ou Visual Basic.
Exemplos
O comando a seguir exibe uma descrição da sintaxe de comando e opções para InstallUtil.
installutil /?
O comando a seguir exibe uma descrição da sintaxe de comando e opções para InstallUtil. Também exibe uma descrição e uma lista das opções com suporte a componentes no instalador myAssembly.exe se o texto de Ajuda foi atribuído ao instalador do Installer.HelpText propriedade.
installutil /? myAssembly.exe
O seguinte comando executa os componentes de instalador no assembly myAssembly.exe.
installutil myAssembly.exe
O seguinte comando executa os componentes de instalador em um assembly usando o /AssemblyName switch e o nome totalmente qualificado.
installutil /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"
O seguinte comando executa os componentes de instalador em um assembly especificado por nome de arquivo e, em um assembly especificado pelo nome forte. Observe que todos os assemblies especificados pelo nome do arquivo devem preceder assemblies especificados pelo nome de alta segurança na linha de comando, porque o /AssemblyName opção não pode ser substituída.
installutil myAssembly.exe /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"
O seguinte comando executa os componentes do desinstalador no assembly myAssembly.exe.
installutil /u myAssembly.exe
O seguinte comando executa os componentes de uninistaller nos assemblies do myAssembly1.exe e myAssembly2.exe.
installutil myAssembly1.exe /u myAssembly2.exe
Porque a posição da /u opção na linha de comando é não importante, isso é equivalente para o comando a seguir.
installutil /u myAssembly1.exe myAssembly2.exe
O seguinte comando executa os instaladores no assembly myAssembly.exe e especifica que as informações de progresso serão gravadas para myLog.InstallLog.
installutil /LogFile=myLog.InstallLog myAssembly.exe
O seguinte comando executa os instaladores no assembly myAssembly.exe, especifica que as informações de andamento devem ser gravadas em myLog.InstallLoge usa os instaladores personalizado /reg opção para especificar que as atualizações devem ser feitas no registro do sistema.
installutil /LogFile=myLog.InstallLog /reg=true myAssembly.exe
O seguinte comando executa os instaladores no assembly myAssembly.exe, usa os personalizada do instalador /email a opção para especificar o endereço de email do usuário e suprime a saída no arquivo de log.
installutil /LogFile= /email=admin@mycompany.com myAssembly.exe
O comando a seguir grava o progresso da instalação para myAssembly.exe para myLog.InstallLog e grava o progresso de myTestAssembly.exe para myTestLog.InstallLog.
installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile=myTestLog.InstallLog myTestAssembly.exe
Consulte também
Referência
Prompt de comando Visual Studio