Как установить windows сервисы, написанные в. Net, с помощью установочного пакета? - PullRequest
1 голос
/ 26 марта 2020

Я тщательно следовал учебному руководству Microsoft : создайте Windows сервисное приложение . В частности, я видел этот код :

static void Main(string[] args)
{
    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[]
    {
        new MyNewService(args)
    };
    ServiceBase.Run(ServicesToRun);
}

С соответствующим ProjectInstaller, также описанным в руководстве, я смог успешно установить службу способом, описанным в учебник с installutil.

Теперь приведенный выше код подсказывает, что я могу установить массив служб с этой программой. Например, я собрал несколько сервисов и получил код следующего вида:

static void Main(string[] args)
{
    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[]
    {
        new Service1(args),
        new Service2(args),
        new Service3(args),
        new Service4(args)
    };
    ServiceBase.Run(ServicesToRun);
}

Опять же, с соответствующим ProjectInstaller, установка этих 4 сервисов с installutil - это хорошо. Я установил свои службы и даже могу их запустить.

Однако мне не удалось найти способ упаковать это в пакет установщика. Документация Microsoft упоминает установщики пакетов ClickOnce, WiX и InstallShield. В моей команде разработчиков мы используем Advanced Installer . Похоже, что ни один из этих пакетов установки не показывает в своей документации, как установить службы с помощью вышеуказанной программы 4-services Main. Каждый раз я вижу, как установить один сервис за раз. Я мог бы, например, написать одну из вышеуказанных Main программ для каждой из моих служб и упаковать эти программы в мой установочный пакет.

Возможно ли это? Как? Я действительно не хочу создавать один визуальный студийный проект для каждого из моих сервисов, просто чтобы установить их. Какие у меня есть возможности, если я не могу реализовать это с помощью вышеуказанного набора услуг?

1 Ответ

0 голосов
/ 26 марта 2020

вы можете попробовать использовать проект установки, который включает в себя все службы, которые будут установлены. Но вам нужно установить плагин Microsoft Visual Studio Installer Project (значок коробки), это руководство, которое может вам помочь: https://www.c-sharpcorner.com/UploadFile/b7531b/create-simple-window-service-and-setup-project-with-installa/ Может быть, когда вы добавите настраиваемое действие в проект установки, вы можете добавить дополнительные службы в включить в установочный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...