我们可以在MSP中提供更新的文本文件(任何非版本化文件)

时间:2017-11-03 13:13:53

标签: wix windows-installer msi-patch

步骤1:我有一个更新的msi,它有一个新的文本文件:env.info 生成的msp将此文本文件放在文件夹中。

第2步:我已经更新了这个文本文件并再次生成了一个msp,现在这个msp并没有替换新文件。

知道如何在msp中处理非版本化文件吗?

1 个答案:

答案 0 :(得分:0)

问题很可能是覆盖规则禁止替换自安装以来已更新的非版本化文件:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx

如果您生成补丁安装的MSI日志,则可以验证这一点。

最安全的解决方案,如下:

https://blogs.msdn.microsoft.com/astebner/2013/05/23/updating-the-last-modified-time-to-prevent-windows-installer-from-updating-an-unversioned-file/

是更改文件的时间以让它被替换。这是因为另一个解决方案是将REINSTALLMODE设置为覆盖所有文件 - 如果最终用较低版本替换更高版本的文件,这可能并不总是写入事情。

针对此问题的更好设计是将数据文件的密钥路径设置为版本化的二进制文件伴随文件。