Serviços do Windows: instalação e desinstalação pela linha de comando InstallUtil.exe e solução de problemas comuns
1. Instalar e desinstalar serviços do Windows pela linha de comando
1. Ferramenta
A Microsoft disponibiliza o InstallUtil.exe para instalar e remover serviços do Windows desenvolvidos em .NET.
- O
InstallUtil.exevaria conforme a versão do .NET Framework. Se a versão da ferramenta não combinar com o framework‑alvo do projeto, a instalação irá falhar; - Você precisa copiar a versão correta do
InstallUtil.exepara a pasta de saídaDebugdo serviço (mesmo diretório do executável do serviço).
A ferramenta InstallUtil faz parte do SDK do .NET. Cada versão instalada do SDK traz uma versão diferente desse utilitário.
.NET Framework 4.0 / 4.5 / 4.6 / 4.7 / 4.8 (mais utilizadas) tem versões separadas para 32 e 64 bits.
Exemplo de caminho da versão 64 bits: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe
.NET 5 /.NET 6 /.NET 7 /.NET 8 /.NET 9 (linha .NET Core) não vem com o InstallUtil.exe
2. Estrutura de pastas (pasta Debug)
WindowsServiceDemo.exe // Executável principal do serviço Windows
WindowsServiceDemo.pdb
InstallUtil.exe // Ferramenta de instalação copiada
install.bat // Script de instalação
uninstall.bat // Script de desinstalação
log.txtCode language: JavaScript (javascript)
3. Criar scripts de lote
install.bat 【Instalar serviço】
d:
cd D:\WindowsService3\WindowsService3\bin\Debug
InstallUtil WindowsServicePicture.exe
pauseCode language: CSS (css)
uninstall.bat 【Desinstalar serviço】
d:
cd D:\WindowsService3\WindowsService3\bin\Debug
InstallUtil /u WindowsServicePicture.exe
pause
Explicação do parâmetro:
/u= uninstall, usado para remover o serviço
É necessárioclicar com o botão direito e executar o CMD como administrador ou rodar o arquivo bat diretamente com privilégios de administrador. Sem permissões suficientes, uma exceção de segurança é lançada, a instalação falha e é revertida automaticamente.
2. Problemas comuns na instalação de serviços do Windows e soluções
Resumo das causas principais
Dois motivos principais para falha na instalação:
- Incompatibilidade entre a plataforma de compilação do projeto, versão do .NET e a versão do InstallUtil.exe;
- Falta de privilégios de administrador, acionando bloqueio de segurança do sistema.
Exceção 1: BadImageFormatException
Mensagem de erro
System.BadImageFormatException: Não foi possível carregar o arquivo ou assembly "WindowsServiceDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" ou uma de suas dependências. Tentativa de carregar um programa com formato incorreto.Code language: JavaScript (javascript)
Causa
A arquitetura da plataforma‑alvo de compilação (x86/x64/AnyCPU) não corresponde ao bit do InstallUtil.exe ou há incompatibilidade de versão do .NET.
Soluções
- Configure o projeto para compilar com a opção
x86; - Use a versão do InstallUtil.exe correspondente ao framework do projeto;
Exceção 2: SecurityException, erro de permissão de segurança (muito frequente)
Mensagem de erro
Ocorreu uma exceção durante a fase de instalação.
System.Security.SecurityException: A origem não foi encontrada, mas parte ou todos os logs de eventos não puderam ser pesquisados. Log inacessível: Security.
Iniciando a fase de reversão da instalação.
A instalação falhou e a reversão foi executada.Code language: CSS (css)
Exemplo de caminho completo do log:
H:\CodigoFonteProjeto\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.InstallLogCode language: CSS (css)
Causa raiz
O terminal de comando ou o Visual Studio não está rodando como administrador e não consegue ler e gravar os logs de eventos do sistema.
Soluções padrão
- Visual Studio: botão direito Executar como administrador, abra o projeto e recompile;
- CMD / script bat: botão direito → Executar como administrador;
- Selecione a plataforma de compilação
x86para gerar o projeto.
Sinal de instalação bem‑sucedida
Saída do console:
A fase de confirmação foi concluída com sucesso.
A instalação transacional foi finalizada.
Abra a lista de serviços do Windows (services.msc) e você verá o serviço recém‑registrado.
Instalação e desinstalação de serviços