MSI安装程序的自定义“修复”和“卸载”功能(从控制面板调用时)

时间:2009-02-18 23:00:43

标签: installer windows-installer controlpanel

添加/删除程序(或程序和功能)控制面板小程序通常允许卸载或修复程序。

对于非MSI安装,当用户单击“更改”或“卸载”按钮时,很容易定义应该发生的事情。只需在注册表中设置适当的密钥(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<AppName>)。

我的问题是如果使用MSI安装,如何使“更改”,“修复”和“卸载”按钮按照我的方式工作(例如,启动自定义程序)?

2 个答案:

答案 0 :(得分:2)

如果您使用的是MSI,请按照MSI方式进行操作。

如果您想做不同的事情,请不要使用MSI。你会给自己带来许多麻烦,并且首先失去使用MSI的好处。

如果您需要在卸载期间运行自己的EXE,see my answer to this question并且只是否定条件。

MSI安装必须记住的一件事是用户界面可选,在安装或卸载过程中,您无法指望它显示。用户可能会使用MSIEXEC /X删除应用程序,而不是单击ARP

中的按钮

如果您真的想“按照自己的方式”,那么我建议为MSI创建一个自举程序,安装MSI hide itself from Add/Remove Programs,然后使用注册表手动为自定义安装程序添加ARP条目你在上面指定的键。

答案 1 :(得分:0)

在MSI用语中,它将启动自定义操作(可以是.EXE)。 Windows安装程序有一个相当陡峭的学习曲线...并且通常试图让它“按照我的方式工作”是一个令人沮丧的捷径。

如果你走这条路,你应该看看Wix.sourceforge.net。它有一个非常活跃的用户社区,对Windows安装程序非常了解。