Eu tenho um serviço .Net Windows. Quero criar um instalador para instalar esse serviço do Windows.
Basicamente, ele deve fazer o seguinte:
- Pacote
installutil.exe
(é necessário?) - Execute
installutil.exe
MyService.exe - Iniciar MyService
Além disso, desejo fornecer um desinstalador que execute o seguinte comando:
installutil.exe /u MyService.exe
Como fazer isso usando o Inno Setup?
c#
windows-services
inno-setup
Devnull
fonte
fonte
Respostas:
Você não precisa
installutil.exe
e provavelmente nem tem direitos para redistribuí-lo.É assim que faço em meu aplicativo:
Basicamente, você pode ter seu serviço para instalar / desinstalar por conta própria, usando
ManagedInstallerClass
como mostrado no meu exemplo.Então é apenas uma questão de adicionar ao seu script InnoSetup algo assim:
fonte
Filename: "net.exe"; Parameters: "start WinServ"
. se não funcionar, você pode apenas adicionar mais uma opção --start ao seu aplicativo c # e iniciar o serviço do Windows diretamente do programa usando a classe ServiceController ( msdn.microsoft.com/en-us/library/… ).using System.Reflection;
ou mudançaAssembly
paraSystem.Reflection.Assembly
no código acima.Veja como eu fiz:
Aparentemente, a instalação do Inno tem as seguintes constantes para fazer referência à pasta .NET em seu sistema:
Mais informações disponíveis aqui .
fonte
Você pode usar
para criar um serviço. Consulte " sc.exe " para saber como iniciar, parar, verificar o status do serviço, excluir o serviço, etc.
fonte
Se você deseja evitar reinicializações quando o usuário atualiza, você precisa interromper o serviço antes de copiar o exe e começar novamente depois.
Existem algumas funções de script para fazer isso em Serviço - Funções para iniciar, parar, instalar, remover um serviço
fonte