WiX引导程序:卸载链中的软件包

时间:2013-05-06 11:47:57

标签: wix wix3.6 wix-extension

 <ExePackage Id="PackageID1" DisplayName="xxx" Compressed="yes"
              SourceFile="..\xxx\MyExe.exe" Vital="yes"
              InstallCommand="parameters to the exe"
              UninstallCommand="parameters to the exe"/>

当我触发卸载操作时:

this.Engine.Detect();
this.Engine.Plan(LaunchAction.Uninstall);
this.Engine.Apply(System.IntPtr.Zero);

不会调用exePackage。但是,在安装期间,它会使用正确的参数进入exe包。

我在这里遗漏了什么吗?

1 个答案:

答案 0 :(得分:3)

您的DetectCondition元素需要ExePackage属性。 DetectCondition是Burn引擎确定包装是否安装在机器上的方式。如果没有DetectCondition,引擎会认为永远不会安装软件包,因此永远不需要卸载它。由于所有可执行文件都不同,因此您必须提供自己的DetectCondition。通常XxxSearch命名空间中的util元素有助于检测您的可执行文件是否已安装。

注意:您可以在日志文件中看到“计划”,即使已安装PackageID1,也应显示'Absent'包被检测为{{1}}。