【问题标题】:Can we deliver an updated text file (any non versioned file) in an MSP我们能否在 MSP 中提供更新的文本文件(任何非版本化文件)
【发布时间】:2017-11-03 13:13:52
【问题描述】:

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

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

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

【问题讨论】:

标签: wix windows-installer msi-patch


【解决方案1】:

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

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

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

【讨论】:

  • 我们可以将 MsiFileHash 添加到未版本控制的文件中并生成 msi 吗?这行得通吗?
  • 忽略我之前的问题。但我还有另一个问题-指向我原来的问题,我的 msp1 将此文件放在安装文件夹中,带有更新的 env.info 文件的 msp2 不会替换旧文件。我检查了这两个文件的 msihash 是否不同。这还不足以让msp2替换文件吗?
  • 我想要使用配套文件。我在支持网站上进行了研究,但找不到任何
  • 我想要使用配套文件。我在支持网站上进行了研究,但找不到任何
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 2014-05-13
  • 2019-02-04
  • 1970-01-01
  • 2021-01-22
  • 1970-01-01
相关资源
最近更新 更多