正如我在标题中提到的,问题是Wix是如何决定安装特定文件的?
所以我有exe文件,当我在exe文件中更改某些内容并重新构建它时,如果我不更改版本,它将不会重新安装。但是,如果我更改了资源文件中的某些内容,即使我不更改应用程序的版本,资源文件也会被替换。那么wix是如何决定是否需要在升级期间替换文件的呢?
我正在使用wix3.9。MajorUpgrade是调度afterInstallFinalize。
发布于 2015-06-30 17:17:57
版本文件是根据文件版本被替换的,但是数据文件是根据您是否有指定的文件哈希来替换的。我认为WiX在默认情况下生成文件哈希,因此这是覆盖规则:
https://msdn.microsoft.com/en-us/library/aa370532(v=vs.85).aspx
这是一个适用于所有MSI设置的规则,而不是WiX决定。
P.S. afterInstallFinalize不是一个理想的地方。afterInstallExecute更安全,而且它的总体结果也是一样的。问题是在InstallFinalize之后意味着新产品已经安装好了。如果旧产品的卸载失败并回滚,您将同时安装旧的和新的产品,否则称为混乱。afterInstallExecute使所有事务都成为事务的一部分,因此如果卸载失败,将安装原始产品。
https://stackoverflow.com/questions/31131811
复制相似问题