2016-11-03 10 views
1

二重目的のパッケージを作成しようとしていますが、アップグレードに問題があります。 「すべてのユーザーに対してインストール」がチェックされている場合、デフォルトで二重目的のパッケージとMajorUpgrade

私の財産は、ダイアログreadyToInstallALLUSERS=2MSIINSTALLPERUSER=1

あり、私は(念のため)ALLUSERS=1MSIINSTALLPERUSER={}を入れててSetPropertyを使用しています。

この部分は正常に動作し、レジストリはHKLMとProgram Filesのファイルに設定されます。しかしupgdrade中

... 私はキーがHKLMで、それはALLUSERS=1MSIINSTALLPERUSER={}を設定している場合AppSearch後にチェックカスタムアクションを持っています。

マイナーアップデートを行うと、ファイルが正しくアップグレードされます。

私はメジャーアップデートを行った場合、レジストリがHKLMに残っているが、ファイルは私がAppSearch後1へALLUSERSを強制するという事実を無視して、(それが実際にデフォルト値を次の)LocalAppDataに切り替えます。 (マイグレーション機能の状態がUIを模倣した後に強制しようとしますが、どちらも機能しませんでした)。

二重目的のパッケージで大きなアップグレードを行う方法はありますか?

答えて

0

次の抜粋に基づいて、あなたがシナリオBに直面しているようだ:あなたは 主要なアップグレードを実行するために、Windowsインストーラのアップグレードコード機能を使用する場合

メジャーアップグレードは
失敗することができます(a) 元のソフトウェアがALLUSERS=””でインストールされ、新しい ソフトウェアがプロパティテーブルにALLUSERS=1であるか、コマンド 行に渡された場合、または(b)元のソフトウェアがインストールされている場合ALLUSERS=1と 新しいソフトウェアのALLUSERS=””またはALLUSERSは、 のプロパティテーブルまたはコマンドラインで定義されていません。詳細情報については

https://shieldmaster.wordpress.com/2012/05/03/understanding-per-user-or-per-machine-context-for-application-setup-packages/