C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: InstallShield のアンインストール処理について


(過去ログ 87 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■51647 / inTopicNo.1)  InstallShield のアンインストール処理について
  
□投稿者/ マサシ (1回)-(2010/07/13(Tue) 15:42:21)

分類:[インストーラ全般] 

Install Shield のアンインストール処理について質問が2点あります。
Install Shield公認ガイドブックは購入して、にらめっこしてるのですが他の情報も少なく四苦八苦しています。
長文で申し訳ありませんが、ご教授おねがいいたしますm(_ _)m

1,
アンインストール時のシーケンスですが、これはUIシーケンスと動作シーケンスがインストール時と同じフローで実行されているイメージでよろしいでしょうか?

2,
Windowsのサービスと、COMコンポーネントのアンインストールについての質問です。概要は以下になります。

インストール時にWindowsのサービスと、コンテキストメニュー(右クリック時のメニュー)のCOMコンポーネントdllを登録しています。
("インストールデザイン" - "セットアップのデザイン" - "コンポーネント ウィザード"から登録しています。サービスについては"サービスのコントロール"でアンインストール時の設定も行っています)
インストール時は問題なく登録され動作をしているのですが、
アンインストール時に"インストールを継続するには、次のアプリケーションを閉じる必要があります。"とダイアログが表示されます。
閉じるアプリは、サービスのexeとエクスプローラ(コンテキストメニューのdllの影響)の2つが表示されています。
このダイアログを表示させずに、きれいにアンインストールを実行したいのですが、どのように設定を行えばよいのでしょうか?

テスト環境はWindows 7
Install Shield 2010を使用しています。
引用返信 編集キー/
■51649 / inTopicNo.2)  Re[1]: InstallShield のアンインストール処理について
□投稿者/ オショウ (543回)-(2010/07/13(Tue) 16:04:50)
No51647 (マサシ さん) に返信
> Install Shield のアンインストール処理について質問が2点あります。
> Install Shield公認ガイドブックは購入して、にらめっこしてるのですが他の情報も少なく四苦八苦しています。

  InstallShieldはずいぶん昔に使っていたので、現状と相違するかもしれませんが・・・

> 1,
> アンインストール時のシーケンスですが、これはUIシーケンスと動作シーケンスがインストール時と同じフローで実行されているイメージでよろしいでしょうか?

  同じフローと言う意味が解らないのですが・・・
  通常は、インストール動作(処理順序)と逆順に処理を行わせる必要がある場合があります。

> 2,
> Windowsのサービスと、COMコンポーネントのアンインストールについての質問です。概要は以下になります。
>
> アンインストール時に"インストールを継続するには、次のアプリケーションを閉じる必要があります。"とダイアログが表示されます。
> 閉じるアプリは、サービスのexeとエクスプローラ(コンテキストメニューのdllの影響)の2つが表示されています。
> このダイアログを表示させずに、きれいにアンインストールを実行したいのですが、どのように設定を行えばよいのでしょうか?

  ただ単にサービスが動作していてファイルがロックされている為、アンインストール動作が
  行えない為に、そのようなメッセージになっているのだと思います。

  よって、アンインストール時、サービスの動作状態をチェックして、動作していれば停止さ
  せた後にアンインストール動作を行わせるようプログラムする必要があります。

  VisualStudioのセットアッププロジェクトなら、カスタム設定で結構楽にその辺、プログラム
  できるんですが・・・InstallShield関係は、ほとんど情報が無い(書籍も役に立たない)の
  で、頑張ってもらうしかないかと・・・

以上。参考まで
引用返信 編集キー/
■51650 / inTopicNo.3)  Re[1]: InstallShield のアンインストール処理について
□投稿者/ とっちゃん (527回)-(2010/07/13(Tue) 16:29:27)
とっちゃん さんの Web サイト
No51647 (マサシ さん) に返信
> Install Shield のアンインストール処理について質問が2点あります。
> Install Shield公認ガイドブックは購入して、にらめっこしてるのですが他の情報も少なく四苦八苦しています。
公認ガイドブックを使ってと、1番の質問から基本MSIと判断しましたがあってますか?違う場合は外してるかもです。


> 1,
> アンインストール時のシーケンスですが、これはUIシーケンスと動作シーケンスがインストール時と同じフローで実行されているイメージでよろしいでしょうか?
>
いいえ、変更ボタンを押した場合だけUIが動作し、それ以外の場合はUIは動作しません。
具体的には、msiexec /X {...} /qb と同じ条件で実行されます({...}は、インストーラのProductCodeです。明記不要です)。


> 2,
> Windowsのサービスと、COMコンポーネントのアンインストールについての質問です。概要は以下になります。
>
> このダイアログを表示させずに、きれいにアンインストールを実行したいのですが、どのように設定を行えばよいのでしょうか?

サービスについて。
コンポーネントのツリーに、サービスの項目があります。
その中のどこかにアンインストール時に終了するというオプションがあります(ISの動く環境を持っていないのでどこにあるかわかりません)ので、そこで設定してください。

エクスプローラが表示される問題。
エクスプローラで利用されるということはシェル拡張か何かのDLLでしょうか?
残念ですがこの場合、登録情報を消して、すべてのエクスプローラを一度終了する以外の方法で解除する手段がありません。
ですので、マニュアルなどでアンインストール時に出てしまうので、リブートするように記述するなどでフォローアップしてください。

引用返信 編集キー/
■51651 / inTopicNo.4)  Re[2]: InstallShield のアンインストール処理について
□投稿者/ とっちゃん (528回)-(2010/07/13(Tue) 16:36:52)
とっちゃん さんの Web サイト
No51649 (オショウ さん) に返信
>   できるんですが・・・InstallShield関係は、ほとんど情報が無い(書籍も役に立たない)の
>   で、頑張ってもらうしかないかと・・・
>
ここだけフォロー。
ISで開発してるのであれば、必ずISのヘルプは持ってるので、まずはそれを見てください。
と案内するのが一番確実です。

操作できるウィンドウの情報はすべて出てるし、それ以外の部分もかなり日本語化されています。
って今も日本語情報が減っていなければ。。。ですが。

なにせ、最後に使ったISは、ISX(Ver.10)と。。。いったい何年前?な状況なのでw

引用返信 編集キー/
■51654 / inTopicNo.5)  Re[3]: InstallShield のアンインストール処理について
□投稿者/ マサシ (2回)-(2010/07/13(Tue) 17:57:54)
いろいろと返信ありがとうございます。

>>オショウさん、とっちゃんさん
※1に関してですが、
インストール時のシーケンスにカスタムアクション(VBS)でダイアログを表示させながらフローを確認したところ、
アンインストール時もシーケンスの上から順にアクションが実行されているように見えました。
インストールとアンインストールで各アクションが実行されたりされなかったりしていると思っているのですが、
正しいでしょうか? このあたりもヘルプでもう少し勉強してみます。


>>とっちゃんさん
※2に関してですが、
サービスプログラムは問題なく削除することはできました。

右クリックメニューの件はシェル拡張DLLです。こちらはやはり無理でした(ダイアログが表示されます)
インストール時にカスタムアクション(VBスクリプト)かで手動でインストールして、
アンインストール時にも同じように手動で削除を行い再起動を要求するように変更したいと思います。
VBスクリプトで"regsvr32"コマンドで解決できるかを試して見ます。
>
引用返信 編集キー/
■51655 / inTopicNo.6)  Re[4]: InstallShield のアンインストール処理について
□投稿者/ とっちゃん (529回)-(2010/07/13(Tue) 18:25:23)
とっちゃん さんの Web サイト
No51654 (マサシ さん) に返信
> ※1に関してですが、
> インストール時のシーケンスにカスタムアクション(VBS)でダイアログを表示させながらフローを確認したところ、
> アンインストール時もシーケンスの上から順にアクションが実行されているように見えました。
> インストールとアンインストールで各アクションが実行されたりされなかったりしていると思っているのですが、
> 正しいでしょうか? このあたりもヘルプでもう少し勉強してみます。
>
InstallExecuteSequence は、アンインストールの場合も上から順に実行されます。
具体的にどんなアクションが実行されるのか?はヘルプを見てもらうほか、
詳細ログ(verboseログ)をとってその結果を参照するでもわかります。
具体的には、msiexec /X {...} /qb /l*v "%TEMP%\Uninstall.log" という感じで
アンインストールの詳細ログをとってみるとよいでしょう。


> 右クリックメニューの件はシェル拡張DLLです。こちらはやはり無理でした(ダイアログが表示されます)
> インストール時にカスタムアクション(VBスクリプト)かで手動でインストールして、
> アンインストール時にも同じように手動で削除を行い再起動を要求するように変更したいと思います。
> VBスクリプトで"regsvr32"コマンドで解決できるかを試して見ます。

どういう形で登録解除しても、ロードされていない状態にできない限り削除はできません。
ロードされていない状態にするには、現状ではリブートするしかないので、実質的には
登録手段をどういう形にしてもリブートが必須ということに変わりはないと思います。

引用返信 編集キー/
■51663 / inTopicNo.7)  Re[4]: InstallShield のアンインストール処理について
□投稿者/ ゆう@ (2回)-(2010/07/13(Tue) 19:34:49)
No51654 (マサシ さん) に返信
> ※1に関してですが、
> インストール時のシーケンスにカスタムアクション(VBS)でダイアログを表示させながらフローを確認したところ、
> アンインストール時もシーケンスの上から順にアクションが実行されているように見えました。
> インストールとアンインストールで各アクションが実行されたりされなかったりしていると思っているのですが、
> 正しいでしょうか? このあたりもヘルプでもう少し勉強してみます。
インストール時、アンインストール時、修復時等の処理は、
共にOnShowUI()を呼び出して、ADDREMOVEの値等で処理が分岐しています。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -