正如我所说的那样,问题是Wix如何决定安装特定文件?
所以我有exe文件,当我在exe文件中更改某些内容并重建它时,如果我不更改版本,则不会重新安装。但是,如果我在资源文件中更改某些内容,即使我不更改应用程序的版本,也会替换资源文件。那么wix如何决定他是否需要在升级过程中替换文件。
我正在使用wix3.9。 MajorUpgrade安排在AfterInstallFinalize之后。
答案 0 :(得分:1)
根据文件版本替换版本化文件,是的,但是根据您是否指定了文件哈希来替换数据文件。我认为WiX默认生成文件,所以这是覆盖规则:
https://msdn.microsoft.com/en-us/library/aa370532(v=vs.85).aspx
它是适用于所有MSI设置的Windows Installer规则,而不是WiX决策。
P.S。 afterInstallFinalize不是一个理想的地方。 afterInstallExecute更安全,它将具有相同的整体结果。问题是在InstallFinalize之后意味着安装了新产品。如果旧产品的卸载失败并回滚,则最终会安装旧产品和新产品,否则称为混乱。 afterInstallExecute使所有事务成为事务的一部分,因此如果无法卸载原始产品,则会安装原始产品。