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



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

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

从日志来看,安装阶段似乎完全符合我的预期。 我的任何未版本控制文件均未被修改。 对于每个文件,我都会收到一条消息,说明Overwrite; Won't patch(如果哈希不同(或Won't overwrite; won't patch(如果哈希相同(。

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

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

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

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

经过一番磕磕绊后想通了。 事实证明,向heat.exe提供-gg标志(将在热量运行时生成 GUID((随机 GUID((与将-ag标志传递给heat.exe后者将 GUID 设置为heat运行时*,以便在运行时生成 GUID(一致(candle是有区别的。

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

最新更新