2

Windows インストーラーのインストール ポリシーに問題があります。これらのオプションのいずれかを使用してアプリケーションをユーザーごと/マシンごと (Just Me/Everyone) にインストールし、別のオプションを使用してアップグレードされたバージョンをインストールすると、インストーラーは以前のバージョンを検出せず、以前のバージョンをアンインストールしないため、エントリが重複します。コントロールパネルでも同じアプリケーションの。インストール ポリシーが変更された場合、インストーラが既存のインストールを検出しないのはなぜですか? インストーラーをだまして以前のバージョンを正しくアンインストールする方法はありますか? ここで同様の記事を見つけましたが、これで問題は解決しません。

4

1 に答える 1

3

あなたが参照しているプロセスは、「メジャー アップグレード」と呼ばれます。このプロセス中、Windows インストーラーは新しいバージョンをインストールし、以前のバージョンをアンインストールします (順序は、 RemoveExistingProducts と呼ばれる標準アクションをスケジュールする場所によって異なります)。

MSDN によると、メジャー アップグレードではコンテキストを変更できません (ユーザーごと -> コンピューターごと、またはコンピューターごと -> ユーザーごと)。

アプリケーションがユーザーごとのインストール コンテキストでインストールされている場合、アプリケーションへのメジャー アップグレードも、ユーザーごとのコンテキストを使用して実行する必要があります。アプリケーションがマシンごとのインストール コンテキストでインストールされている場合、アプリケーションのメジャー アップグレードもマシンごとのコンテキストを使用して実行する必要があります。Windows インストーラーは、インストール コンテキスト全体でメジャー アップグレードをインストールしません。

最初にユーザーごとのインストールをアンインストールし (すべてのプロファイルに存在する可能性があります)、次にマシンごとのインストールをインストールする必要があります。これは、ユーザーごとのインストールが通常ベスト プラクティスではない理由の 1 つです。それらは保守が困難です。

于 2013-03-19T11:59:10.613 に答える