WiX bootstrapper:在一个链中卸载包


 <ExePackage Id="PackageID1" DisplayName="xxx" Compressed="yes"
              SourceFile="..xxxMyExe.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);

exeppackage不被调用。但是,在安装过程中,它会进入带有正确参数的exe包。

我错过了什么吗?

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

注意:你可以在日志文件中看到'plan',它应该显示PackageID1包被检测为'Absent',即使它已经安装。

相关内容

  • 没有找到相关文章

最新更新