har*_*per 3 windows-installer wix major-upgrade
WiX 安装程序产品节点有一个属性UpgradeCode。它用于指代同一产品的先前版本。该值存储在UpgradeTable中。UpgradeTable 由FindRelatedProducts操作进行解析。
允许UpgradeCode删除具有相同的以前的产品UpgradeCode。但计划是将几个过时的遗留产品集成到一个组合的单一产品中。UpgradeCode该遗留产品的特征是已知的。我希望将此代码添加到 UpgardeTable 中也能删除此遗留产品。这可以通过填充 UpgradeTable 来完成。
如何在 WiX 设置的升级表中添加更多条目?
编辑:需要什么语法?
有没有更好的方法来删除升级后废弃的产品?
简短回答:您在 WiX 源中添加多个升级元素条目,这将在编译的 MSI升级表中创建几行,然后列出在安装过程中要卸载的产品(或可以中止安装的产品)。您必须非常小心为每个要卸载的产品系列指定的选项。
主要升级失败:以下列表可通过识别最常见的问题来帮助调试失败的主要升级:主要升级失败的常见原因。
并行安装:请注意,在主要升级期间卸载旧版本的另一种方法是使新版本足够隔离,以便能够与现有安装共存。这种隔离可能具有挑战性,并且完全是另一回事(防止:争夺文件关联、不兼容的 COM 服务器安装、不兼容的运行时、冲突的服务、配置文件和注册表项的意外锁定等...)。
MajorUpgrade 元素:WiX 的较新版本以MajorUpgrade 元素的形式提供了用于重大升级实施的“便利功能”。此元素简化了正常主要升级的实施。
升级元素:在 WiX 的早期版本中,必须使用更多基本元素来实现重大升级。这个元素仍然可用,它是您需要做更精细和细粒度的 UpgradeTable 配置的地方。
Wim Coenen在这里很好地说明了使用这些方法之间的差异:Majorupgrade 或 Upgrade ID which is Preferred for Major Upgrade? 我认为这个解释非常好,所以我拒绝在这里重复太多:-)。请快速阅读一下。
主要升级配置选择:以下只是一个示例。重大升级的实际配置必须在每种情况下仔细推理:
显然,您必须为此进行计划并进行详细测试。下面是一个模型。这结合了 MajorUpgrade 元素和 Upgrade 元素的使用。您还可以仅依靠升级元素通过更细粒度的控制“手动”执行操作:
<!-- Major upgrade - Your New Product Line, using the MajorUpgrade convenience element -->
<MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed" />
<!-- Older Product Line 1: Upgrade Code -->
<Upgrade Id="{11111111-1111-1111-1111-000000000000}">
<UpgradeVersion Property="PRODUCTLINE1" IncludeMinimum="yes" Minimum="0.0.0" />
</Upgrade>
<!-- Older Product Line 2: Upgrade Code -->
<Upgrade Id="{22222222-2222-2222-2222-000000000000}">
<UpgradeVersion Property="PRODUCTLINE2" IncludeMinimum="yes" Minimum="0.0.0" />
</Upgrade>
<!-- Older Product Line 3: Upgrade Code -->
<Upgrade Id="{33333333-3333-3333-3333-000000000000}">
<UpgradeVersion Property="PRODUCTLINE3" IncludeMinimum="yes" Minimum="0.0.0" />
</Upgrade>
Run Code Online (Sandbox Code Playgroud)
我建议您更改这些 PRODUCTLINE 属性的名称,这些属性本质上可以理解为特定的产品线。换句话说,如果您卸载 WiX3,您可以将其称为 WIX3PRODUCTLINE 等...这样生成的日志文件更容易理解。
升级表示例:
升级表的属性列对于控制主要升级的行为非常重要。继续卸载失败等...
以及可用于查看编译的 MSI 文件的免费工具列表(对于可能找到此答案的人):如何比较两个(或更多)MSI 文件的内容?
更新:
旧链接入口:
还想将您发送到 WiX 专家Neil Sleightholm 的网站,获取一些过时但仍然很好的现实示例:
| 归档时间: |
|
| 查看次数: |
2581 次 |
| 最近记录: |