防止删除引导程序
Prevent removal of bootstrapper
我有一个自定义引导程序,允许用户卸载安装的组件或整个安装。在任何一种情况下,引导程序都会被删除并且在 'Programs and Features' 中不再可用。如果我知道用户只是卸载安装的一个组件,有什么方法可以防止捆绑包被删除?
我想也许我可以将安装状态设置为修改,但我没有找到这样做的方法。
在 计划 阶段,您需要处理一些事件来为您的捆绑包中的每个 MsiFeature 和包设置您想要的 State
。
对于每个 wix msifeature
and/or package
用户 改变 ,您需要设置 State
在计划阶段事件处理程序(BootstrapperApplication.PlanPackageBegin
和 BootstrapperApplication.PlanMsiFeature
).对于任何剩余的未更改,将状态设置为None
。
然后,当您调用 Engine.Plan(...)
时,如果您希望引导程序在 运行 之后存在,则需要提供 Modify
或 Install
的 LaunchAction 值],或者 Uninstall
如果你想删除引导程序。 我怀疑这是您遇到问题的地方 - 检查您传递给 Plan()
的值
我写了一系列您可能会觉得有用的博文(尤其是第 5 部分):Writing Your Own .NET-based Installer with WiX
我有一个自定义引导程序,允许用户卸载安装的组件或整个安装。在任何一种情况下,引导程序都会被删除并且在 'Programs and Features' 中不再可用。如果我知道用户只是卸载安装的一个组件,有什么方法可以防止捆绑包被删除?
我想也许我可以将安装状态设置为修改,但我没有找到这样做的方法。
在 计划 阶段,您需要处理一些事件来为您的捆绑包中的每个 MsiFeature 和包设置您想要的 State
。
对于每个 wix msifeature
and/or package
用户 改变 ,您需要设置 State
在计划阶段事件处理程序(BootstrapperApplication.PlanPackageBegin
和 BootstrapperApplication.PlanMsiFeature
).对于任何剩余的未更改,将状态设置为None
。
然后,当您调用 Engine.Plan(...)
时,如果您希望引导程序在 运行 之后存在,则需要提供 Modify
或 Install
的 LaunchAction 值],或者 Uninstall
如果你想删除引导程序。 我怀疑这是您遇到问题的地方 - 检查您传递给 Plan()
我写了一系列您可能会觉得有用的博文(尤其是第 5 部分):Writing Your Own .NET-based Installer with WiX