Fügen Sie in dem Projekt, das den Dienst enthält, eine Installer-Klasse hinzu. Sie sollte in etwa so aussehen:
[RunInstaller(true)]
public class MyServiceInstaller : Installer
{
public MyServiceInstaller()
{
ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller();
serviceProcessInstaller.Account = ServiceAccount.LocalSystem; // Or whatever account you want
var serviceInstaller = new ServiceInstaller
{
DisplayName = "Insert the display name here",
StartType = ServiceStartMode.Automatic, // Or whatever startup type you want
Description = "Insert a description for your service here",
ServiceName = "Insert the service name here"
};
Installers.Add(_serviceProcessInstaller);
Installers.Add(serviceInstaller);
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
// This will automatically start your service upon completion of the installation.
try
{
var serviceController = new ServiceController("Insert the service name here");
serviceController.Start();
}
catch
{
MessageBox.Show(
"Insert a message stating that the service couldn't be started, and that the user will have to do it manually");
}
}
}
Klicken Sie dann im Projektmappen-Explorer mit der rechten Maustaste auf das Bereitstellungsprojekt und wählen Sie "Ansicht > Benutzerdefinierte Aktionen". Klicken Sie mit der rechten Maustaste auf "Benutzerdefinierte Aktionen" und wählen Sie "Benutzerdefinierte Aktion hinzufügen...". Wählen Sie den Anwendungsordner und wählen Sie die primäre Ausgabe des Projekts, das den Dienst enthält. Nun werden die benutzerdefinierten Aktionen ( Commit
von oben) wird bei der Installation ausgeführt. Sie können die zusätzlichen Methoden ( Install
, Rollback
, Uninstall
), wenn Sie andere benutzerdefinierte Aktionen benötigen.
4 Stimmen
Im ProjectInstaller Rechtsklick auf den serviceProcessInstaller => Eigenschaften Konto auf LocalSystem setzen