我已经使用 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 就可以正常安装,没有问题。