このプロジェクトは、Installshield 2008 Premier Edition の InstallScript MSI プロジェクトを使用して開発されました。プロジェクトでは、古いバージョンが上位バージョンにインストールされないように条件を追加しました。
私たちが直面している問題は、製品バージョンが 1.0.0925.1 になり、より高いバージョンよりも低いバージョンを避けるために条件が追加された新しいプロジェクトを検討することです。その条件を追加するには、上記のリンクから取得しました。これに加えて、メジャー アップグレードの [共通] タブで、アップグレード プロンプトを有効にしました。将来の新しいセットアップには 1.0.0925.2 が付属しているため、アップグレードを要求する必要があります。
ここで、製品バージョン 1.0.0925.2 で新しいセットアップを作成し、メジャー アップグレードの [共通] タブでプロンプトを無効にします。ユーザーが 1.0.0925.2 の上に 1.0.0925.1 をインストールしようとすると、許可されません。その場合、正常に動作しています。「この製品の別のバージョンが既にインストールされています。このバージョンのインストールを続行できません。この製品の既存のバージョンを構成または削除するには、コントロール パネルの [プログラムの追加と削除] を使用してください。」{2D0E6C46-1CC2-4174-8AAC -0B39312D8ECE}"
数日後に変更があり、バージョン 1.0.0925.3 で別のセットアップが作成され、アップグレードのプロンプトが無効になります。ここで、1.0.0925.2 の上に 1.0.0925.3 をインストールしようとしましたが、明らかにアップグレードが必要です。しかし、ここで問題が発生し、「セットアップはアップグレードを実行します」と尋ねる代わりに、「この製品の別のバージョンが既にインストールされています。このバージョンのインストールは続行できません。この製品の既存のバージョンを構成または削除するには、追加と削除を使用します。コントロール パネルのプログラム。{2D0E6C46-1CC2-4174-8AAC-0B39312D8ECE}" 1.0.0925.2 のプロンプトを無効にしたため、アップグレードできません。これを有効にすると、アップグレードが要求されるたびにセットアップが実行されます。
Installscriptで製品バージョンを確認することも考えましたが、すでにインストールされているセットアップの製品バージョンと現在実行中のセットアップを取得できた場合、どのようにアプローチすればよいかわかりません。しかし、設計時に設定されているため、実行時にアップグレードのプロンプトを変更するにはどうすればよいですか。