- PR -

サービスアプリのインストーラについて

1
投稿者投稿内容
ともたろう
会議室デビュー日: 2005/04/05
投稿数: 11
投稿日時: 2005-06-16 13:26
こんにちは。

環境:
VisualStudio2003
WindowsXP
C#

上記環境にてWindowsサービスアプリを作りました。
セットアッププロジェクトにてインストーラも作成しました。
インストールはうまく動作し、サービスの動作にも問題はないのですが
アンインストールを行った場合にコンパネの「サービス」に該当サービスが
残ってしまいます。
(再起動しても同様。なお、ファイルは正常にすべて削除される)
どのようにすれば正常にアンインストールできるでしょうか?

・サービスアプリ名称 TestApp
・セットアッププロジェクト名称 TestSetup
・TestAppプロジェクトでは「インストーラの追加」によりProjectInstallerクラスを
 作成
・serviceInstaller1, serviceProcessInstaller1の各プロパティを設定
・TestSetupプロジェクトに TestAppを登録
・TestSetupプロジェクトの「カスタム動作」のすべてのアクションに
 「TestAppのプライマリ出力」を登録

iStation
大ベテラン
会議室デビュー日: 2003/12/08
投稿数: 158
投稿日時: 2005-06-16 13:42
Windows サービス アプリケーション:下記を参考にしましょう!
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vboriCreatingConfiguringWindowsServiceApplications.asp

_________________
IEEE-CSDP 2004-2007

[ メッセージ編集済み 編集者: iStation 編集日時 2005-06-16 15:14 ]
ともたろう
会議室デビュー日: 2005/04/05
投稿数: 11
投稿日時: 2005-07-07 22:17
こんにちは。

かなり時間がかかりましたがやっと解決しました。
インストーラプロジェクトのカスタム動作のアクションのうち「アンインストール」に
登録されているアクションを一旦削除し、再度追加したら解決しました。
変更前後で同じものが登録され表示上も同じなのですが、何らかの情報が変わって
しまっていたようです。プロジェクトを上書きしてしまったので直接の原因は
分からないのですが・・・

新たに不明なことがありますのでご存知の方がいればご教示ください。

バージョンアップに備えて上書きインストールの設定方法を調査しています。
仕様は以下のとおりです。
・バージョンアップ時にシステムの再起動はしない。
・ProductCodeは変更しない。バージョンアップ時は msiexec.exeに
REINSTALLMODE=vomusオプションを追加して上書きインストールを行う。

サービスが動いている状態で上書きインストールできるよう、ProjectInstallerの
BeforeInstall()イベントハンドラにおいて該当サービスを停止するコードを
書き込みました。
これにより、上書きインストーラは、サービス停止→ファイル上書き→サービス再開を
実行するので希望の動作を実現できたのですが、最後に「変更を反映するには
再起動せよ」とメッセージが出てしまいます。
イベントログ等で調査をしたところ、次のような動作になっているようです。
(1)Windows Installerがファイルを上書きできるかチェック
(2)ProjectInstallerの BeforeInstall()イベントハンドラが呼び出される

上記(2)によりサービスが停止して上書きできるようになったのに、(1)での判定が
最後まで有効になっており再起動を促す画面が出るようです。
実際にはファイルは上書きされているため「再起動しない」ボタンを押しても
全く問題のない状況です。しかし、「再起動しなければ反映されない」という旨の
メッセージなので、ユーザに対して再起動しなくてもOKですよとは言いにくい状況です。

解決策として
・上記(1)よりも前に何らかのイベントハンドラ呼び出してもらう
・上記(2)の処理中に再起動フラグ(?)をクリアする
・その他
が考えられると思うのですが、何らかの方法はないでしょうか?


[ メッセージ編集済み 編集者: ともたろう 編集日時 2005-07-07 22:22 ]

[ メッセージ編集済み 編集者: ともたろう 編集日時 2005-07-07 22:22 ]
1

スキルアップ/キャリアアップ(JOB@IT)