如何在"程序和功能中卸载程序"工作?

时间:2014-12-26 14:00:38

标签: windows windows-installer

通过控制面板卸载一个msi包时。在任务栏中,我注意到没有调用带有commandLine \ x的msiexec.exe,但仍然卸载了msi软件包。在存储该特定软件的注册表中,他们提供了uninstallstring,其中给出了类似“MsiExec.exe / X {2012098D-EEE9-4769-8DD3-B038050854D4}”的内容。

所以还有其他方法可以在不调用Msiexec.exe的情况下卸载软件吗?

如果确实如此呢? 有谁可以请你这个启发我

3 个答案:

答案 0 :(得分:2)

对于Windows Installer产品,不使用注册表中的UninstallString。 Windows只是调用API来执行卸载。是的,如果您想要自定义卸载以执行不同的操作,有时候这会很痛苦,但这就是它的工作方式。

答案 1 :(得分:1)

向ARP(“添加/删除程序”控制面板)添加程序的传统方法是在以下任一注册表项中指定卸载程序的命令字符串(例如c:\app\uninstall.exe):

KEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

OR

KEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall

卸载程序的路径由" UninstallString"指定。每个子项的值

不使用MSI的安装程序正是使用这种技术在ARP中显示以支持卸载。

此处有更多详情: http://msdn.microsoft.com/en-us/library/aa372105%28v=vs.85%29.aspx

答案 2 :(得分:-1)

msiexec.exe是用于安装/卸载任务的一般过程。它将特定的程序ID /类ID作为参数,它具有GUID形式 - 您发布的长十六进制字符串。

即使您没有看到它使用/ x开关执行,当您选择从控制面板中卸载某些内容时,它会以静默方式传递此字符串 - 其结果是卸载。