2
 <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 包。

我在这里错过了什么吗?

4

1 回答 1

3

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

注意:您可以在日志文件中看到“计划”,它应该显示PackageID1正在检测到的包,'Absent'即使它已安装。

于 2013-05-06T12:51:51.190 回答