これは可能ですか?
基本的に、サードパーティツール(Orcaなど)を使用して既存のMSIからGUIDを取得し、これらを使用してInstallShieldを構成して既存のバージョンをアンインストールする必要があることだけがわかります。私はこれらの指示のセットの1つまたは2つを試しましたが、今のところ何も機能していません。たぶん私は何か間違ったことをしているからかもしれませんが、私は比較的簡単なことだと思うことをするために多くのフープを飛び越えているようです。この問題は以前に解決されていませんか?
グーグルの一番上の結果は この答え を指しています:
これは、新しいバージョンを展開するたびに「Orcaで古いMSIを開いてUpgradeCodeを取得する」必要があることを意味しますか?
これは少しハックに聞こえますが、新しいバージョンを展開するたびに実行したくないことは確かです。これを自動化する方法はありますか?この機能はInstallShieldのより高度なバージョンで利用できますか(LEを使用していることに注意してください-必要に応じてアップグレードします)
InstallShield LEは、以前のセットアッププロジェクトと同様に、以前にインストールされたバージョンを置き換える製品の新しいバージョンのインストールを可能にします。技術的に古い製品のアンインストールなのか、インプレースアップグレードなのかは、あまり重要ではないようです。
重要なのは製品コードとアップグレードコードの違いです。
製品コード:このコードは製品を一意に識別するため、リリースの配布後に製品コードを変更することはお勧めしません。
アップグレードコード: UpgradeCodeプロパティに格納されているアップグレードコードは、製品のすべてのバージョンで同じである必要があります。
(このテキストは、InstallShield LEヘルプライブラリから直接提供されています。)
これらのコードを使用して製品と同じ製品のバージョン更新を展開する方法は、簡単ではありません。
ヘルプテキストは、製品コードを変更してはならないように聞こえます。これはそうではありません。 「このコードは製品を一意に識別するため、バージョンであるため、特定のリリースは推奨されません。」 ...またはそのようなもの。
基本的に、あなたはshouldリリースする新しいバージョンを作成するときに製品コードを変更します。 アップグレードコードはそのままにします!製品コードを変更するには、{..}
ボタンをコードの右側に配置します。 InstallShield LEは新しいコードを生成します。
私の標準的な手順は、プロジェクトのバージョンを変更し、新しい製品コードを生成して、InstallShieldセットアッププロジェクトをビルドすることです。
以前のバージョンが既にインストールされているマシンに製品をインストールする場合、セットアッププロジェクトはそれを更新し、ターゲットマシンにインストールされているプログラムの1つのバージョン(最新)のみを残します。
私が理解している限り、YJeltonの答えは正しいですが、古い製品を確実に削除したい場合は、アップグレードテーブルにMajorUpgrade項目を追加する必要があります。 [アップグレードコードを共有する製品]オプションを選択し、製品バージョンには[以前のバージョン]を選択できます。
これにより、アップグレードコードが古い製品と同じで、新しい製品のバージョン番号が新しい場合、古い製品は削除されます。
アップグレードコードを変更する場合は、「別のアップグレードコードを持つ製品」オプションが選択されているMajorUpgradeアイテムを追加できます。次に、古いアップグレードコードを貼り付けます。