【问题标题】:Manually migrate feature states during upgrade在升级期间手动迁移功能状态
【发布时间】:2015-01-27 13:53:42
【问题描述】:

我们有一个产品的功能树在版本之间发生了很大变化,因此UpgradeVersion 元素上的MigrateFeatures="yes" 选项似乎不起作用。

我将如何手动将旧功能转换为新功能?我是否需要自定义操作,如果需要,我该如何从那里执行此操作?

【问题讨论】:

  • 我知道这是很久以前的事了,但我认为对于此类情况的另一个可行选择可能是设置 MigrateFeatures="No" - 只是为了完全避免尝试匹配特征状态。

标签: wix windows-installer wix3.9


【解决方案1】:

据我所知,特征树结构不相关 - 它与特征表中的名称匹配,因此如果它们都匹配,您仍然会得到一些迁移。请注意,它是名称,而不是标题,因此如果名称相同但 UI 中的标题不同,则可以。所以它取决于到底发生了什么变化,如果它只是布局或许多 Name 值。

否则,您需要自定义操作来设置 ADDLOCAL 以设置已安装列表中的功能列表,您需要使用 MsiEnumFeatures 和 MsiQueryFeatureState 进行查询。或者代码可能位于外部启动器中,该启动器找到已安装的功能,然后使用功能的 ADDLOCAL 命令行启动 MSI,可能不提供功能对话框。我认为这是唯一的方法。

【讨论】:

  • 修改的不仅仅是特征树的结构,而是特征被拆分成几个等等,所以我肯定需要一些人工来迁移状态。但是您的建议似乎为我指明了正确的方向,所以我会尝试一下。谢谢。
猜你喜欢
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 2016-04-12
  • 1970-01-01
相关资源
最近更新 更多