Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix中以前版本的有条件卸载_Wix_Conditional_Uninstallation - Fatal编程技术网

Wix中以前版本的有条件卸载

Wix中以前版本的有条件卸载,wix,conditional,uninstallation,Wix,Conditional,Uninstallation,我正在为一个用于调试嵌入式ARM内核(OpenOCD)的软件做一个安装程序,这个安装程序会自动删除以前的版本——这很简单。但是,由于各种(内部)兼容性问题等原因,有时需要安装多个版本(每个版本都有自己的文件夹,所以这里没有冲突) 我正在尝试创建一个安装程序,它在功能树(或其他任何地方)中有一个选项可以卸载(或不卸载)以前的版本 基本上有以下安装顺序: <InstallExecuteSequence> <Custom Action="NewerVersionDetecte

我正在为一个用于调试嵌入式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文件的更多详细信息,请告诉我,我将发布相关信息。

尝试以下方法:

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

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