我处于以下情况,我需要删除标记为永久的组件。我们的安装程序的早期版本安装了一个 Windows 服务,在卸载主要产品后应该留在系统上。
现在我们尝试删除左侧的服务并用更新的版本替换它。问题是我们有两个不同的组件 guid,因为我们更改了用于创建 msi 的工具。
在我看来,有三种可能的方式来实现这个目标:
a) 使用文件搜索来更新文件本身。b) 使用组件搜索并尝试找到它。如果没有找到,请尝试找到另一个。如果找到任何一个,请使用升级元素来升级组件。C) ???- 可能是“最佳实践”方式
我的一些同事提到只删除文件,但这会导致更多麻烦,因为 Windows Installer 注册表中没有未注册的组件。
我在这里没有提到 CustomActions,因为它应该是实现目标的最后一个选项。