【问题标题】:Wix major upgrade removing unversioned filesWix 主要升级删除未版本控制的文件
【发布时间】:2018-02-03 22:29:42
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

标签: wix windows-installer


【解决方案1】:

经过一番磕磕绊绊后想通了。事实证明,将-gg 标志提供给heat.exe 之间存在差异,heat.exe 将在热量运行时生成一个 GUID(随机 GUID),并将-ag 标志传递给heat.exe,这会将 GUID 设置为@987654325 @ 当heat 运行时,GUID 可以在candle 运行时生成(一致)。

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

【讨论】:

  • 是的,如果您想防止升级问题,组件 GUID 必须在您的新设置和旧设置之间匹配。
猜你喜欢
  • 2011-10-15
  • 2012-03-14
  • 2017-02-27
  • 2017-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多