0

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

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

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

4

1 回答 1

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 设置为覆盖所有文件 - 如果您最终用较低版本替换较高版本的文件,这可能并不总是要做的事情。

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

于 2017-11-03T19:00:09.653 回答