3

小さなWindowsアプリケーションにAdvancedInstallerProfessionalEditionを使用しています。

インストーラーが実行され、製品がすでにインストールされている(そして最新である)ときにカスタムアクションを実行できるかどうか疑問に思いますか?

通常、インストーラーを実行すると、「別のバージョンの製品が既にインストールされています」というメッセージが表示されるか、何も起こりません。私が理解していることから、これを自動的に行うのはMSIですが、Advanced InstallerがMSIを独自のexeファイルでラップできるため、これを回避する方法があることを期待していました。

すでにインストールされている場合は、アプリケーションを起動します。通常のインストールが完了した後、すでにアプリケーションを自動起動していますが、インストーラーは実行時に常にアプリケーションを起動するようにしたいと思います。

4

1 に答える 1

3

「別のバージョンの製品が既にインストールされています」というメッセージは、開発段階でのみ表示され、ユーザーがこのメッセージを見ることはありません。より正確には、このメッセージは、製品をバージョン 1.0.0 でインストールした場合に表示され、ファイルをもう 1 つ追加し、MSI を再構築して、同じバージョン 1.0.0 で再度インストールしようとした場合に表示されます。

この状況では、パッケージ コードが異なる 2 つのパッケージがありますが、製品コードとバージョンは同じであるため、上記のパッケージが表示されます。

ユーザーは、公式リリースにアクセスできるため、同じバージョンで 2 つの異なるパッケージを実行する機会を得られないため、そのメッセージは表示されません。

実際に表示されるのは、メンテナンス ダイアログ、つまり、製品を変更/修復/削除するためのオプションです。

MSI を再度起動するたびにアプリケーションを起動するには、InstallUISequence の先頭にある [カスタム アクション] ページで、実行条件を次のように設定して、メインの実行可能ファイルを起動するように設定して、事前定義されたカスタム アクションを [起動ファイル] または [URL を開く] に設定します。

インストール済み

この正確な条件により、アプリケーションがマシンに既にインストールされている場合にのみ、カスタム アクションが実行されます。

ただし、MSI は閉じられないため、ユーザーには引き続きメンテナンス ダイアログが表示されます。

于 2012-07-18T15:27:50.167 に答える