ti-enxame.com

Não é possível instalar o serviço do Windows com uma ajuda da instalação InstallUtil

Eu uso o VS 2012 e desde que os projetos de instalação foram removidos dele eu tenho que usar InstallUtil.exe.

Eu não tenho a classe projectInstaller no meu aplicativo de serviço do Windows. Eu corro no comando Prompt: 

installutil FilesMonitoringService.exe 

Eu recebo: 

C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #> installutil "C:\Arquivos de Programas\Mic Rosso Visual Studio 8\VC #\CSharpProjetos\MyService\MyService\bin\Release\MyServ ice.exe " Microsoft (R) Utilitário de instalação do .NET Framework Versão 2.0.50727.42 Copyright (c) Microsoft Corporation. Todos os direitos reservados.

Executando uma instalação transacionada.

Iniciando a fase de instalação da instalação. Veja o conteúdo do arquivo de log para C:\Arquivos de Programas\Microsoft Visual Studi 8\VC #\CSharpProjects\MyService\MyService\bin\Release\MyService.exe O progresso do assembly . O arquivo está localizado em C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #\CSharpProj Ects ​​\ MyService\MyService\bin\Release\MyService.InstallLog. Instalando o Assembly 'C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #\CSharpProjec Ts\MyService\MyService\bin\Release\MyService.exe'. Os parâmetros afetados são: Logtoconsole = Assemblypath = C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #\CSharpProjetos\ MyService\MyService\bin\Release\MyService.exe Logfile = C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #\CSharpProjects\MySer Vice\MyService\bin\Release\MyService.InstallLog Não foi possível encontrar instaladores públicos com o atributo RunInstallerAttribute.Yes [._ ___.] no C:\Arquivos de programas\Microsoft Visual Studio 8\VC #\CSharpProject\MyService\ MyService\bin\Release\MyService.exe Assembly.

A fase de instalação foi concluída com êxito e a fase de confirmação está começando. Consulte o conteúdo do arquivo de log para o C:\Arquivos de Programas\Microsoft Visual Studi O 8\VC #\CSharpProjects\MyService\MyService\bin\Release\MyService.exe Progresso do assembly . O arquivo está localizado em C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #\CSharpProj Ects ​​\ MyService\MyService\bin\Release\MyService.InstallLog. Confirmação de Assembly 'C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #\CSharpProjec Ts\MyService\MyService\bin\Release\MyService.exe '. Os parâmetros afetados são: Logtoconsole = Assemblypath = C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #\CSharpProjetos\ MyService\MyService\bin\Release\MyService.exe Logfile = C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #\CSharpProjects\MySer Vice\MyService\bin\Release\MyService.InstallLog Nenhum instalador público com o RunInstallerAttribute.Yes Este atributo pode ser encontrado em no assembly C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #\CSharpProject\MyService\ MyService\bin\Release\MyService.exe. Remova o arquivo InstallState porque não há instaladores.

A fase de confirmação foi concluída com sucesso.

A instalação transacionada foi concluída.

C:\Arquivos de Programas\Microsoft Visual Studio 8\VC #>

OK, parece que tudo foi instalado. Mas! Quando vou ao gerenciador de tarefas para a página Serviços, não consigo encontrar meu serviço.

Qual seria a razão? 

Desde já, obrigado!

Edita: Apontei que não tenho a classe projectInstaller porque se eu adicioná-lo (no designer -> add installer) e executar o comando installutil eu recebo: (tradução aproximada)

Instalação do FilesMonitoringService ... Criação do EventLog FilesMonitoringService em um aplicativo de log ...

Neste estágio de configuração, a exceção ocorreu.

System.Security.SecurityException: A origem não foi encontrada, mas não foi encontrada por nenhum ou todos os dias de log. Jornais não disponíveis: Segurança.

O estágio de recuo começa. 

// lotes de texto 

O estágio de recuo foi bem sucedido

Operação do grupo de configuração executada. A configuração falhou e o recuo foi executado.

Então, se eu adicionar o projectInstller ao meu serviço do Windows, ele definitivamente falhará ao instalar com o installUtil.
Aqui está o código gerado: 

[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
    public ProjectInstaller()
    {
        InitializeComponent();
    }
    private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
    {}
    private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
    {}
}

Mabby Eu preciso colocar algum código em métodos AfterInstall? Eu também configuro esta propriedade em uma janela properties

serviceInstaller1: ServiceName -> FileMonitoringService, StartType -> Automatic
serviceProcessInstaller1: Account -> LocalSystem

Ou pode ser implementado sem projectInstaller? 

12
Aleksei Chepovoi

Ok, existem algumas coisas: 

1) Você precisa de projectInstaller.
2) YourProject -> propriedades; Projeto de inicialização -> YourProject.Program
3) construir
4) “Executar como administrador” o comando Prompt! 

Tudo funciona agora.

link tutorial completo

18
Aleksei Chepovoi

Eu não tenho uma cópia do VS2012 para testá-lo agora, mas acredito que o seu problema tem algo a ver com o 

Eu não tenho a classe projectInstaller no meu aplicativo de serviço do Windows

parte.

De msdn :

Os componentes de instalação registram um serviço individual no sistema Para o qual ele está sendo instalado e permitem que o Gerente de Controle de Serviços Saiba que o serviço existe

1
Gama Felix

Parece trivial, mas verifique cuidadosamente quando você está escrevendo os argumentos installutill, porque você pode confundir o arquivo exe do serviço com outro arquivo exe gerado pela compilação de um projeto referenciado (que não possui instaladores de serviço) e fazê-lo falhar.

0
NahuelGQ