Автозапуск службы Windows

рассмотрим службу Windows с проектом установки, теперь как я могу заставить службу Windows запуститься после завершения установки?

я попытался добавить установщик проекта, и в коммитах даже я запустил службу, но это сработало бы, только если бы я использовал InstallUtil, я искал способ сделать это при использовании проекта установки...

любая идея ?


person Stacker    schedule 11.10.2010    source источник


Ответы (3)


Вы можете создать новое пользовательское действие, которое будет использовать класс ServiceController для запуска вновь созданной службы.

person Johann Blais    schedule 11.10.2010

Чтобы ваш сервис запускался сразу после установки, вы можете добавить следующие несколько строк кода. Подписавшись на событие Committed, вы можете убедиться, что оно запускает службу после установки. Также обратите внимание на строку service.StartType = ServiceStartMode.Automatic;, которая, в свою очередь, заботится об установке службы с включенным свойством автоматического запуска, что заставляет службу автоматически запускаться при перезагрузке системы.

public class ProjectInstaller : Installer
{
    private ServiceProcessInstaller process;
    private ServiceInstaller service;

    public ProjectInstaller()
    {
        process = new ServiceProcessInstaller();
        process.Account = ServiceAccount.LocalSystem;
        service = new ServiceInstaller();
        service.ServiceName = "MyWCFServer";
        service.StartType = ServiceStartMode.Automatic;
        Installers.Add(process);
        Installers.Add(service);

        service.Committed += new InstallEventHandler(serviceInstaller_Committed);
    }

    void serviceInstaller_Committed(object sender, InstallEventArgs e)
    {
        ServiceController controller = new ServiceController(service.ServiceName);
        controller.Start();
        controller.WaitForStatus(ServiceControllerStatus.Running);
    }
}
person Tiger Galo    schedule 06.08.2015

Как предположил Иоганн Блейс; Сначала добавьте проект развертывания и добавьте пользовательское действие на обеих вкладках «Установить» и «Зафиксировать», сделайте то, что вам нужно на этих вкладках, то есть запустите службу.

person KhanZeeshan    schedule 11.10.2010
comment
Вы имеете в виду создать новую DLL и прикрепить ее к пользовательскому действию? или exe файл? потому что я пробовал с .bat, и это не сработало! - person Stacker; 11.10.2010
comment
Если вы сделали все в функции OnStart службы Windows, просто добавьте основной вывод из вашего проекта службы Windows в настраиваемые действия. - person KhanZeeshan; 11.10.2010
comment
я уже сделал это, но тогда что это не заставит службу запускаться после установки - person Stacker; 11.10.2010
comment
@Khan Я уже сделал, чтобы служба сделала все на этой странице, почему ты указал мне на эту страницу? - person Stacker; 11.10.2010
comment
я этого не знал, проверьте эту ссылку; devnewsgroups.net/windowsforms/ - person KhanZeeshan; 11.10.2010
comment
на самом деле, я думаю, это msdn.microsoft.com/en-us /library/zt39148a(VS.80).aspx будет работать при его реализации сейчас - person Stacker; 11.10.2010