更新されるWindowsサービスがあります〜隔週
私はすでにDLLにすべての有用なコードを持っています。サービスは、DLL内の同一のメソッドにマップする単純なメソッドのほんの2つStart
ですStop
。
私はコンソールアプリを使用してDLLを開発/デバッグしているので、疑問に思っていました。サービスがDLLを直接参照し、更新を行うたびにアンインストール/再インストールを要求する代わりに、サービスを使用してコンソールアプリケーションをラップすることの欠点はありますか?
つまり、代わりに...
Private MyService as IMyService
Sub Start()
MyService = New MyService()
MyService.StartAsync()
End Start
次のようなことをしています...
Const ServiceExecutablePath As String = "C:\Blah\MyService.exe"
Private MyService as Process
Sub Start()
MyService = Process.Start(ServiceExecutablePath)
End Start
そうすれば、公開したい場合は、サービスを停止し、実行可能ファイル(および関連するDLL)を置き換えてから、サービスを再開するだけです。
正常なシャットダウンを実行する方法はまだよくわかっていません。コンソールアプリは、CTRL C割り込みと呼び出しMyService.Shutdown(Graceful:=True)
(ブロッキング呼び出し)をリッスンします。サービス内から同じものをエミュレートする必要がありますか、それともより良い方法がありますか?