私はMSIとしてパッケージ化された製品を持っています。私の顧客が私の製品の新しいバージョンを既存のバージョンの上にインストールすると、以下に説明するように、カスタムVBSアクションのためうまく動作しません。私の質問は、どのように私は自分のMSIを変更することができますので、上にインストールすると常に既存のバージョンを完全にアンインストールしますか?msi installの一部として以前のバージョンをアンインストールするには?
詳細は以下のとおりです。
私は、様々な異なる企業で展開バージョンの様々な製品を持っています。年に約1回、私の顧客のそれぞれが新しいバージョンの製品を受け取り、自社のワークステーションに展開します。導入担当者は、インストールパッケージにアンインストール手順を含めるのではなく、古いバージョンの上に新しいバージョンをインストールすることを好むでしょう。
msi installは[CommonApplicationData] \ MyAppフォルダにいくつかのファイルを作成して書き込みます。実行中に、アプリケーションは[CommonApplicationData] \ MyAppフォルダーにさらに多くのファイルを作成します。アンインストール中にこれらのファイルをすべて削除する必要があります。彼らはmsiによってインストールされていないので、自動的にアンインストールされないので、そのフォルダとその中の他のものを削除するvbsスクリプトを作成しました。
...
RemoveFiles
RemoveFolders
CreateFolders
MoveFiles
InstallFiles
PatchFiles
If REMOVE="ALL" Then
REM line below is my custom script
call VBScript From Installation (MyApp_UninstallCleanup)
End
DuplicateFiles
BindImage
CreateShortcuts
...
これまでのところは良いと&アンインストールをインストールするときに、それが正常に動作します:私はExecuteDeferredでそのVBSを実行するコマンドを置きます。しかし、私の製品の新しいバージョンを既存のバージョンの上にインストールすると、次のような順番で起こります。 a)新しいバージョンのインストール、[CommonApplicationData] \ MyAppフォルダ内のさまざまなファイルの作成、[Program Files] \ MyApp ...旧バージョン のファイルを上書きするb)[CommonApplicationData] \ MyAppフォルダを削除してvbsを実行する
新しいMSIのアップグレードテーブルに記載されている古いバージョンのGUIDがあります。このカスタムスクリプトとは別に、アップグレードプロセスは正常に機能しているようです。
製品自体はかなり小さいので、新しいバージョンをインストールする前にインストーラが以前のバージョンを完全に削除しても問題ありません。ワークステーションに保持する必要のあるユーザー設定はなく、ファイルサイズは大きくありません。したがって、わかりやすくするために、変更されたビットだけで更新するのではなく、以前のバージョンをアンインストールする必要があります。
新しいMSIを変更して以前のバージョンを最初にアンインストールする方法はありますか?
特に、私はカスタムバージョンを含むMSIの既存のバージョンをインストールしている多くの企業があります。したがって、ソリューションは実際にインストールされている既存のmsiに対処できるものでなければなりません。
私はWise Installation Express 7.0を使用してMSIを作成しました。
ありがとうございます!
(hereクロスポスト)InstallInitialize
アクション前