0

以前は、InstallAnywhere を使用してセットアップを構築していました。新しいセットアップ プロバイダーとして InnoSetup に切り替えました。

新しいインストールをインストールする前に、古いインストール全体を削除する必要があります。Innosetup は古いセットアップを認識し、「古い」アンインストーラーを最初に実行しますが、古いセットアップは Innosetup のアンインストーラーを認識しません。古いセットアップが既に存在するため、これらの構成を変更することはできません。

InstallAnywhere の構成を変更せずに、InstallAnywhere に Innosetup アンインストーラーを認識させるにはどうすればよいですか?

Windowsが同じアプリケーションが既にインストールされているかどうかを確認するために使用する「標準的な方法」はありますか?

以前の InstallAnywhere アンインストーラーを「シミュレート」するために、Innosetup 内で InstallAnywhere レジストリ キーを作成しようとしましたが、成功しませんでした。

4

1 に答える 1

1

InstallAnywhere が独自のカスタム「レジストリ」を保存する場所を見つけました。すべての Flexera 製品がこのメカニズムを使用しているようです。

C:\Program Files (x86)\Zero G Registry\.com.zerog.registry.xmlインストールされているすべてのコンポーネントに関する情報を含むXML ファイルがあります。残念ながら、ファイル形式は文書化されておらず、スキーマ定義への参照も含まれていません。

私は基本的に回避策に行き着きました.InnoSetupのインストール中にサイレントインストールされる「ダミー」のInstallAnywhereセットアップを作成しています。これは、IA セットアップによって検出されたビーイングと、アンインストール中に InnoSetup アンインストーラーを呼び出すという 1 つのことのみを行うために使用されます。

于 2016-02-29T07:03:49.607 に答える