防止删除引导程序

Prevent removal of bootstrapper

我有一个自定义引导程序,允许用户卸载安装的组件或整个安装。在任何一种情况下,引导程序都会被删除并且在 'Programs and Features' 中不再可用。如果我知道用户只是卸载安装的一个组件,有什么方法可以防止捆绑包被删除?

我想也许我可以将安装状态设置为修改,但我没有找到这样做的方法。

计划 阶段,您需要处理一些事件来为您的捆绑包中的每个 MsiFeature 和包设置您想要的 State

对于每个 wix msifeature and/or package 用户 改变 ,您需要设置 State在计划阶段事件处理程序(BootstrapperApplication.PlanPackageBeginBootstrapperApplication.PlanMsiFeature).对于任何剩余的未更改,将状态设置为None

然后,当您调用 Engine.Plan(...) 时,如果您希望引导程序在 运行 之后存在,则需要提供 ModifyInstall 的 LaunchAction 值],或者 Uninstall 如果你想删除引导程序。 我怀疑这是您遇到问题的地方 - 检查您传递给 Plan()

的值

我写了一系列您可能会觉得有用的博文(尤其是第 5 部分):Writing Your Own .NET-based Installer with WiX