Я использую Topshelf v3.1 для установки моего консольного приложения в качестве службы Windows. Я устанавливаю свою консоль через командную строку, например: myconsole install
Все выглядит хорошо, за исключением того, что команда кажется никогда не завершенной, я имею в виду, что обычно после выполнения команды консоль командной строки возвращается в состояние, в котором вы можете снова ввести другую команду. Каким-то образом команда topshelf останавливается в последней точке, поэтому мне нужно нажать Control + C, чтобы убить команду.
Мой код ниже:
class Program
{
static void Main(string[] args)
{
//HostFactory.Run(x =>
//{
// x.Service<DummyService>(s =>
// {
// s.ConstructUsing(name => new DummyService());
// s.WhenStarted(tc => { });
// s.WhenStopped(tc => { });
// });
// x.RunAsLocalSystem();
// x.SetDescription("DummyService1");
// x.SetDisplayName("DummyService2");
// x.SetServiceName("DummyService3");
// x.StartAutomatically();
//});
var service = new DummyService();
service.Run();
}
}
Каким-то образом, если я раскомментирую блок, который я закомментировал выше, и закомментирую последние 2 строки в методе Main. Затем я снова запускаю команду, она волшебным образом работает.
PS: метод DummyService.Run просто оборачивает закомментированный блок кода. По сути, они одинаковы.
Любые идеи?
Ура, Лд.