Windowsサービスのデバッグ


WindowsサービスをVisual Studioデバッグしたいとき
通常のアプリとはちょっと違う手順を踏む必要があるようだ。


自分の使用しているOSはWindows XP
開発環境はVisual Studio 2005 Professional Edition、
ユーザーは管理権限有りで実施。


以下の手順を踏む事でデバッグ可能になる。

1.Windowsサービスのビルド
2.Windowsサービスのインストール
3.Windowsサービスの開始
4.プロセスのアタッチ


それぞれの手順の注意点。


1.はDebug構成でビルドすること。


2.は1.でビルドしたexeをinstallutil.exeを使って
コマンドラインからインストールする。
通常のコマンドプロンプトでは
installutilへのパスが通っていないので
スタートメニューから
Visual Studio 2005 コマンド プロンプト」
を開いて実行する。
コマンドは以下の通り。

Windowsサービスのインストール
> installutil Sample.exe


Windowsサービスのアンインストール
> installutil /u Sample.exe


これでインストールが完了するので
コントロールパネルの管理ツールから
サービス一覧を開くと追加されているハズ。
なのでこのサービスを開始させる=3.。


4.はVisual Studioツールメニューから
プロセスのアタッチを選び
プロセス一覧の中から3.で開始させたプロセスを
選んでアタッチする。


以上でブレークポイントで処理を止めるなどの
デバッグが可能になる。


当たり前だがソース修正すると1.のビルドから
実施する必要があるので、かなり面倒臭い。