Ответ 1
Вы можете написать службу самообучения и установить список сервисов, на которые зависит ваш сервис, когда выполняется программа установки.
Основные шаги:
- Добавить ссылку на System.Configuration.Install в ваш проект.
- Добавьте класс, который происходит от System.Configuration.Install.Installer и имеет RunInstaller атрибут.
- В своем конструкторе создайте ServiceProcessInstaller и ServiceInstaller.
- В объекте ServiceInstaller вы помечаете все зависимости, которые вам нужны/нужны, с помощью свойства ServicesDependedOn.
- Добавьте эти два установщика в InstallersCollection ваш установщик, унаследованный от System.Configuration.Install.Installer
- сделано.
edit: забыл упомянуть, что вы можете использовать, например. Installutil.exe, чтобы вызвать установщика.
[RunInstaller(true)]
public class MyServiceInstaller : Installer
{
public MyServiceInstaller()
{
using ( ServiceProcessInstaller procInstaller=new ServiceProcessInstaller() ) {
procInstaller.Account = ServiceAccount.LocalSystem;
using ( ServiceInstaller installer=new ServiceInstaller() ) {
installer.StartType = ServiceStartMode.Automatic;
installer.ServiceName = "FooService";
installer.DisplayName = "serves a lot of foo.";
installer.ServicesDependedOn = new string [] { "CLIPBOOK" };
this.Installers.Add(procInstaller);
this.Installers.Add(installer);
}
}
}
}