Я использую SC.exe для регистрации двоичного файла службы.
При этом остается только эта заглушка в классе установщика службы:
[RunInstaller(true)]
public partial class SoapSenderInstaller : Installer
{
public SoapSenderInstaller()
{
InitializeComponent();
}
}
Вызов SC.exe очень прост:
sc create MyService binpath= "C:\Path\to\my\MyService.exe" DisplayName= "My Service Display Name" depend= MSMQ start= auto
Единственный недостаток - это то, как sc.exe ожидает аргументы командной строки:
binpath=[BLANK]"MyService.exe"
EDIT
Конечно, это решение не соответствует требованию о том, что пользователю не нужно создавать какой-либо код, который делает его двоичный файл службой Windows, потому что если он просто ссылается на вашу библиотеку, ему все равно придется наследовать от ServiceBase и реализовать OnStart () и OnStop ().