wix ツールを使用して patch.msp ファイルを生成しました。次のコマンドを使用してコマンド ラインからインストールすると、アプリのすべてのコンポーネントが更新されます。
コマンド ライン経由で patch.msp ファイルをインストールすると、問題なく動作します。
msiexec.exe /p patch.msp /l*vx patch.log /qb REINSTALL=ALL REINSTALLMODE=omusa
ただし、ユーザーが Windows エクスプローラーを使用して patch.msp ファイルをインストールする場合 (基本的にはファイルをダブルクリックします)。正常にインストールされます (エラーは生成されず、インストールされた更新プログラムにも表示されます) が、dll ファイルと .exe ファイルは更新されません。
どうすればこれをインストールできREINSTALL=ALL
ますか?patch.wxs ファイルに追加できるコマンドはありますか?
前もって感謝します
編集
<CustomAction Id="PatchInstall" Property="PATCH" Value="REINSTALL" />
<InstallExecuteSequence>
<Custom Action="PatchInstall" Before="InstallInitialize">REINSTALL="ALL"</Custom>
</InstallExecuteSequence>
これに関する更新 - 2012/09/27
提案された方法は機能しませんでしたが、私の解決策の問題は、ファイルのバージョンが変更されなかったため、ファイルが変更されていないことを知らせる警告メッセージがインストーラーに表示されることです。パッチのインストール時にログにこれを見つけました:
MSI (s) (48:F4) [17:32:34:025]: File: C:\Muzi_Test_Installer\ACME.dll; Won't Overwrite; Won't patch; Existing file is of an equal version
ファイルのバージョンを更新して、テストを再実行します。
これがファイルのバージョン管理の問題であることを確認するためだけに最終更新を行ってください! ファイルのバージョンを更新するだけで、MSP は問題なく正常にインストールされます。