【问题标题】:How does Wix decide to install a particular file?Wix 如何决定安装特定文件?
【发布时间】:2015-06-30 07:10:56
【问题描述】:

正如我在标题中所说,问题是 Wix 如何决定安装特定文件?

所以我有 exe 文件,当我更改 exe 文件中的某些内容并重建它时,如果我不更改版本,它将不会重新安装。但是,如果我更改资源文件中的某些内容,即使我不更改应用程序的版本,资源文件也会被替换。那么 wix 是如何决定在升级过程中是否需要替换文件的。

我正在使用 wix3.9。 MajorUpgrade 是在InstallFinalize 之后安排的。

【问题讨论】:

    标签: wix installation wix3.9


    【解决方案1】:

    版本文件会根据文件版本被替换,是的,但数据文件会根据您是否指定文件哈希来替换。我认为 WiX 默认会生成文件,所以这是覆盖规则:

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

    这是适用于所有 MSI 设置的 Windows Installer 规则,而不是 WiX 决定。

    附: afterInstallFinalize 不是一个理想的地方。 afterInstallExecute 更安全,并且总体结果相同。问题是InstallFinalize之后意味着安装了新产品。如果旧产品的卸载失败并回滚,您最终将安装新旧产品,否则称为一团糟。 afterInstallExecute 使所有内容都成为事务的一部分,因此如果卸载失败,您可以安装原始产品。

    【讨论】:

    • 谢谢。当 MajorUpgrade 被安排时,我肯定会改变。我不知道这会引发这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多