• ベストアンサー

自動アンインストール機能付きインストーラ

お世話になります。 Visual Studio Installer を使用しています。 最初に、自動的にアンインストールしてから インストールするような機能をつけることは可能でしょうか。 ユーザさんには、いちいち、アプリケーションの追加と削除で アンインストールさせたくないです。 すでにインストールされているプログラムを意識せずに、 セットアップを実行するだけで、更新していただきたいのです。

質問者が選んだベストアンサー

  • ベストアンサー
  • lahalito
  • ベストアンサー率48% (31/64)
回答No.1

Visual Studio Installer だけではそのような機能は実現できないと思います。 InstallShieldなどのインストーラーを利用するか、もしくは自分で、アンインストールの呼び出しと、VSIで作成したインストーラを呼び出すプログラムを作成されてはどうでしょう。 (バッチファイルという手もありますが)

nikosaru
質問者

お礼

回答ありがとうございます。 やはり、Visual Studio Installer だけでは無理なのですね。 InstallShield って、有償のソフトですよね。 なるべく、お金をかけたくないなー、と、ムシいいことを考えています。

その他の回答 (2)

  • siokara
  • ベストアンサー率41% (7/17)
回答No.3

インストールする前のレジストリ情報と、した後のレジストリ情報のスナップをとり その差分を見る事で、どのような要素が加わったのかわかります。 この差分をモジュール化することでアンインストールした状態が作りだせると紹介した HPがあったのですが、すみません見失いました・ VSInstallerを少し調べてみたのですが、 #インストーラ パッケージ (.msi) ファイルを使って製品をインストールすると、Windows Installer は、 #インストールするコンポーネントが既にインストール先のマシンに存在するかどうかを確認します。 #インストール先のマシンにコンポーネントが見つかると、両方のバージョンを比較し、どちらのバージョン #が新しいかを決定します。インストールされているコンポーネントが古い場合は、最新バージョンを #インストールします。コンポーネント情報を管理、比較することによって、そのコンポーネントを使用する #すべてのアプリケーションに、常に最新バージョンのコンポーネントが用意されます。 とあるので、msi形式で作成すれば、問題ないような気がします。。 参考URLにリンク載せときます。

参考URL:
http://www.asia.microsoft.com/japan/developer/library/vsinstal/veconvisualstudioinstallerbestpractices.htm
nikosaru
質問者

お礼

私も、そんな気がしていたのですが。 どうも、うまくいきませんでした。 以下に、検証過程を記述します。 -------------------------------- 1.フォーム1つ、mdb1つ、ActiveReports1つがインストールされるmsiパッケージを作成。 2.インストール。 3.1で作成した元のプロジェクトに変更を加える    ・フォームに貼り付けたコマンドボタンのCaptionの変更    ・mdbを1つ追加    ・ActiveReportsを1つ追加 4.3のプロジェクトから、msiパッケージを作成。 5.インストール。   修復と削除を選択できるラジオボタン付き画面が表示されるので修復を選択。 6.3で加えた変更は、まったく、反映されませんでした。

nikosaru
質問者

補足

Visual Studio Installer 単独では、 自動アンインストールは難しそうなので、 「アプリケーションをアンインストールしたあと、セットアップを実行する」 ようなツールを自作する方向で、がんばってみようと思います。 ありがとうございました。

  • siokara
  • ベストアンサー率41% (7/17)
回答No.2

インストールする前と後のスナップショットを取っておき、その差異をモジュールとして組み込む。 改変の度に必要なので、面倒で効率悪いですが、やりたい事は実現できるかと・

nikosaru
質問者

お礼

回答ありがとうございます。 私は、ちゃんと、理解できてないかもしれないのですが。 要するに、アンインストール/インストール という作業ではなくて、 修正部分のモジュールだけを、常にインストールしていく、 という方法でしょうか。

関連するQ&A