- - PR -
VS2005で作成したインストーラでインストールしたソフトのアンイストールについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-06-03 22:59
アンイストール時はインストールしたファイルしか
削除(後で追加されたファイルやプログラムが作成したファイルは削除されない) されないです。 インストールしたフォルダをまるまる削除したいのですが アンインストール時の設定はセットアッププロジェクトでは 指定できないのでしょうか? | ||||
|
投稿日時: 2008-06-04 10:40
指定出来る出来ない以前にそれはやっちゃいけません。
インストールロケーションがユーザーが指定したかあるいはなんらか別の理由(ミスとかね)で、例えば ProgramFilesFolder あたりになっていた場合アンインストール処理を行うとさてどうなるでしょうかという話です。 フォルダを消したい場合きちんと消したい(後で追加した、プログラムが作成した?)ファイルを列挙して RemoveFile テーブルに追加(さらに CreateFolder だっけか?)か、あるいはカスタムアクションでカバーします。 …見たところ VS のセットアッププロジェクトにそれは設定できなそうなので、Orca で直接編集するかカスタムアクションしかないみたいです。あるいは(msi 編集を)ビルドプロセスに組み込みたいならビルド後の処理で WiRunSQL.vbs あたりを走らせればよいです。 | ||||
|
投稿日時: 2008-06-04 11:04
本題と関係ありませんが、これ市販ソフトでやらかしたことがあります。 アプリケーションはほぼ全てDドライブにインストールしていたのですが、 D:\Program Files フォルダ配下をきれいさっぱり空っぽにしてくれやがりました…。 インストール先を指定する画面で、いつも通り D:\Program Files を指定しました。 てっきり、そこにアプリケーション名でサブフォルダを作ってインストールしてくれるだろうと思っていたのですが、 作成されずに D:\Program Files 直下にインストールされてしまいました。 それでインストールし直そうと思ってアンインストールしたら、 見事に上の状況になってしまったというわけです。 皆さんもお気を付けて…orz [ メッセージ編集済み 編集者: rain 編集日時 2008-06-04 11:05 ] | ||||
|
投稿日時: 2008-06-04 11:34
「インストール先」の表示で「フォルダを作成する場所」を示す場合と「実際にファイルが置かれる場所」を示す場合が有って混乱しますよね。 これってインストーラーの問題なんでしょうか? MSは後者を推奨しているんだと思うんですがねぇ。 この例に該当するかどうかは今となっては未確認ですが、やはり Program Files 以下をごっそりと削除された事が有ります。 ユーザーの作成したデータはユーザーに消させる、または問い合わせを出すくらいにしておいてくれないとアンインストールは怖いですね。 | ||||
|
投稿日時: 2008-06-04 12:12
皆さん回答ありがとうございます
確かにユーザがどこにインストールするかわからないから 無条件で削除したら駄目ですね。 被害を受けた方もいますしね・・・。 yaさんの ・Orca で直接編集 ・カスタムアクション ・(msi 編集を)ビルドプロセスに組み込みたいならビルド後の処理で WiRunSQL.vbs を調べてみます わかったらまた投稿します。 | ||||
|
投稿日時: 2008-06-05 22:53
調べた結果
・Orca で直接編集はやらないほうがいいみたいなのでパスします ・カスタムアクションはC#でインストーラクラスを使用してできるので カスタムアクションを使用してやります。 アンインストール時にメッセージボックスを表示することができたので C#のコーディングで目的は達成できそうです。 参考URL http://dobon.net/vb/dotnet/deployment/customaction.html#installer2 |
1