我的应用程序有一个版本化文件和许多未版本控制的文件。我希望行为描述here我希望它是默认行为,但我没有看到这种行为。
基本上,如果未修改,则应替换未版本控制的文件,如果修改则单独保留。
从日志中可以看出安装阶段完全符合我的预期。我的无版本文件都没有被修改过。对于每个文件,我收到一条消息,指出Overwrite; Won't patch
(如果散列不同)或Won't overwrite; won't patch
(如果散列相同)。
但是,当删除阶段运行时(在默认位置运行,在安装完成后),它将删除所有未版本控制的文件。
我唯一的猜测是因为文件在每个包中都有不同的GUID,但我想每次创建安装程序时都可以重新生成文件GUID。
我意识到我可以在安装发生之前更改删除阶段,但如果升级失败,我希望应用程序保持原位,所以我希望避免这种行为。
我可以做些什么来防止卸载阶段删除我的文件?
答案 0 :(得分:1)
经过多一点磕磕绊绊后想出来。事实证明,将-gg
标志提供给heat.exe
并在热运行时生成GUID(随机GUID)并将-ag
标志传递给heat.exe
之间存在差异这将在*
运行时将GUID设置为heat
,以便在candle
运行时生成(一致地)GUID。
如果我将-ag
传递给heat.exe
,那么我会获得一致的GUID并且升级行为正确。