我有一个自定义引导程序,允许用户卸载安装组件或整个安装。在任何一种情况下,引导程序都会被删除,并且“程序和功能”中不再提供。如果我知道用户只是卸载了安装的一个组件,是否有办法阻止捆绑被删除?
我想也许我可以设置安装状态进行修改,但我没有办法做到这一点。
答案 0 :(得分:2)
在计划阶段,您需要处理一些事件,以便为捆绑包中的每个MsiFeature和Package设置所需的State
。
对于每个wix msifeature
和/或package
,用户正在更改,您需要将事件args的State
值设置为{ {1}}或AddLocal
表示功能,Remove
或Present
表示规划阶段事件处理程序(Absent
和BootstrapperApplication.PlanPackageBegin
)中的包。对于任何剩余的未更改,请将状态设置为BootstrapperApplication.PlanMsiFeature
。
然后,当您调用None
时,如果您希望在运行后存在引导程序,则需要提供Engine.Plan(...)
或Modify
的LaunchAction值,或{{1如果你想删除引导程序。 我怀疑这是您遇到问题的地方 - 检查您传递给Install
的价值
我写了一系列您可能感兴趣的博客文章(特别是第5部分):Writing Your Own .NET-based Installer with WiX