1

ここで見つけたコードに基づいてインストーラーを作成しました。アプリの以前のバージョンが存在する場合、新しいバージョンをインストールする前に、インストーラーにそれを削除してもらいたいです。

クリーンインストールであれば、すべてうまくいきます。

アップグレードすると、奇妙なことが起こります。予想どおり、古いバージョンが削除され、レジストリが変更され、ショートカットがデスクトップに配置されます。奇妙なことに、インストーラーが完了すると、プライマリ ファイルはアプリケーション フォルダーに存在しません。

アップグレード後に起動すると、インストーラーの小さなメッセージ ボックスがポップアップ表示され、「Windows が -app name-.. を構成している間お待ちください」と表示されます。この簡単なメッセージの後、ファイルはアプリ フォルダーに存在する必要があり、アプリが起動します。

ただし、ローンチ前は、そこにはありません。アプリを起動する前に再起動を試みて、何らかのキャッシュに詰まっている場合にファイルが配置されるかどうかを確認しました.

誰でもこの動作を見たことがありますか? この質問に少し似ていますが、アップグレードのたびに発生します。

4

1 に答える 1

1

奇妙なことに、インストーラーが完了すると、プライマリ ファイルはアプリケーション フォルダーに存在しません。

コンポーネントが正しく管理されていない場合、これは Windows インストーラーのアップグレードでよくある問題です。通常、コントロール パネルからインストーラーをメンテナンス モードで起動し、「修復」を行うと、見つからないファイルが再表示されます。この場合、 Windows はアプリケーションを起動したときにアプリケーションを自動的に修復しました。

私の頭頂部のいくつかの可能な説明:

  1. 新しいバージョンのインストーラーは、このファイルを新しい GUID を持つコンポーネントにインストールします。コンポーネントの GUID は安定していなければならないため、これにより問題が発生します。

  2. インストーラーは、コンポーネントごとに複数のファイルをインストールします。コンポーネントをインストールするかどうかはキーパスによって決定され、キーパスにできるファイルは 1 つだけであるため、これは問題を引き起こします。コンポーネントごとに 1 つのファイルに固執します

  3. ファイルの「新しいバージョン」には、実際にはより低いバージョン番号があります。このような「アップグレード」は正しく機能しません

于 2012-04-05T08:27:46.513 に答える