VisualStudio.NET2003では、簡単にWindowsサービスを作成することが出来ます。
Windowsサービスプロジェクトの作成
- 「新規作成」「プロジェクト」から「Windows サービス」を選択すると、System.ServiceProcess.ServiceBaseを継承したスケルトンクラスが生成されます。
- OnStart(),OnStop(),OnShutDown()などのメソッドに、C#コードを記述できます。
インストーラの作成
WindowsサービスをOSに組み込むには、コマンドラインツール(regsvr32)で登録してもいいのですが、VS.NETを使っているならインストーラを作っちゃう方が簡単です。
- デザイナビューでプロパティWindow下部に、「インストーラの追加(I)」をクリックすると、ProjectInstaller.csが作成されます。
- ProjectInstallerクラスには、serviceProcessInstaller1とserviceInstaller1がフィールドとして含まれています。
- ServiceProcessInstallerには、サービス実行アカウントの設定なんかをさせればよいかと
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
- ServiceInstallerには、サービスのプロパティなんかを設定すればよいかと
this.serviceInstaller1.ServiceName = "TestWindowsService";
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
this.serviceInstaller1.DisplayName = "Test Service";
- このインストーラクラスの動作を有効にするには、このWindowsサービス用のセットアッププロジェクトを作成して、全てのカスタム動作にプライマリ出力を登録すればOK。
実装サンプル:
DynamicDNS更新Windowsサービス
関連:
Visual Studio Installer