Debugモードでビルドされているときに限り、デバッガ選択画面を立ち上がり、アタッチできます。
- /// <summary>
- /// サービス起動
- /// </summary>
- /// <param name="args"></param>
- protected override void OnStart(string[] args)
- {
- //デバッグ時のみデバッガを起動します。
- DebuggingProcess();
- //以降サービス起動時に行う処理
- }
- /// <summary>
- /// [デバッグ属性メソッド]デバッガ起動
- /// </summary>
- [Conditional("DEBUG")]
- private void DebuggingProcess()
- {
- System.Diagnostics.Debugger.Launch();
- }
メソッドにデバッグ時のみ実行される属性を付けます。
- [Conditional("DEBUG")]
この属性の付いたメソッドは、Relaseモードで実行された場合には実行されません。
処理自体空振りします。
実行すると、デバッガはどれでデバッグしますか?的なウィンドウが現れ、指定したツールでアタッチできます。
ビルドしてインストールしてサービス立ち上げてデバッガ立ち上げてなんて…サービスのデバッグはホント面倒ですね。