Wix主要升级删除未版本控制的文件

时间:2017-08-25 20:08:41

标签: wix windows-installer

我的应用程序有一个版本化文件和许多未版本控制的文件。我希望行为描述here我希望它是默认行为,但我没有看到这种行为。

基本上,如果未修改,则应替换未版本控制的文件,如果修改则单独保留。

从日志中可以看出安装阶段完全符合我的预期。我的无版本文件都没有被修改过。对于每个文件,我收到一条消息,指出Overwrite; Won't patch(如果散列不同)或Won't overwrite; won't patch(如果散列相同)。

但是,当删除阶段运行时(在默认位置运行,在安装完成后),它将删除所有未版本控制的文件。

我唯一的猜测是因为文件在每个包中都有不同的GUID,但我想每次创建安装程序时都可以重新生成文件GUID。

我意识到我可以在安装发生之前更改删除阶段,但如果升级失败,我希望应用程序保持原位,所以我希望避免这种行为。

我可以做些什么来防止卸载阶段删除我的文件?

1 个答案:

答案 0 :(得分:1)

经过多一点磕磕绊绊后想出来。事实证明,将-gg标志提供给heat.exe并在热运行时生成GUID(随机GUID)并将-ag标志传递给heat.exe之间存在差异这将在*运行时将GUID设置为heat,以便在candle运行时生成(一致地)GUID。

如果我将-ag传递给heat.exe,那么我会获得一致的GUID并且升级行为正确。