1

我正在为用于调试嵌入式 ARM 内核 (OpenOCD) 的软件做一个安装程序,这个安装程序会自动删除以前的版本——这很简单。但是,有时由于各种(不)兼容性问题等原因,需要安装多个版本(每个版本都有自己的文件夹,因此这里没有冲突)。

我正在尝试创建一个安装程序,该安装程序将在功能树(或其他任何地方)中有一个选项来卸载(或不卸载)以前的版本。

基本上有这个安装顺序:

<InstallExecuteSequence>
    <Custom Action="NewerVersionDetected" After="FindRelatedProducts">DOWNGRADE</Custom>
    <RemoveExistingProducts After="InstallFinalize"/>
</InstallExecuteSequence>

我知道 RemoveExistingProducts 可以通过在 RemoveExistingProducts 标签之间设置条件来设置条件,但是......条件应该是什么?有很多关于使功能有条件或关于操作系统版本和一些注册表项等条件的信息,但我没有找到任何关于“用户定义的条件”的有用信息......

假设在特征树中有这个元素:

<Feature Id="UninstallOlderVersionFeature" Title="Uninstal previous versions" Level="1" Description="..."/>

如何根据此功能(或用户在安装期间可以选择的任何其他方法 - 问题框或单独的窗口或任何其他方法)使卸载以前的版本成为条件?

任何帮助表示赞赏(我和安装程序的用户),因为我在 Wix 和 XML 方面不是很好(我是嵌入式人员(;)

如果需要有关整个 Wix 文件的更多详细信息 - 请告诉我,我会发布相关信息。

4

1 回答 1

2

试试这个:

<RemoveExistingProducts After="InstallFinalize">
<![CDATA[&UninstallOlderVersionFeature=3]]>
</RemoveExistingProducts>

这是选择特征的状态。“3”表示选择了该功能进行安装。

于 2009-11-13T09:03:55.573 回答