同时通过控制面板卸载一个msi包。在任务栏中,我注意到没有调用带有commandLine \x的msiexec.exe,但是仍然卸载了msi包。在存储该特定软件注册表中,它们已经提供了卸载串,在该卸载串中类似的东西被给予"MsiExec.exe /X{2012098d-ee9-4769-8dd3-B038050854D4}“。
因此,它还有其他方法可以在不调用Msiexec.exe的情况下卸载软件??
如果是这样,那是怎么回事??有人能在这方面给我点启发吗?
发布于 2014-12-28 04:55:18
对于Windows Installer产品,不使用注册表中的UninstallString。Windows只需调用API即可进行卸载。是的,如果你想自定义卸载来做一些不同的事情,有时这是一件痛苦的事情,但这就是它的工作方式。
发布于 2014-12-27 17:57:08
将程序添加到ARP (添加/删除程序控制面板)的传统方法是在以下注册表项中指定卸载程序的命令字符串(例如c:\app\uninstall.exe
):
KEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
或
KEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
卸载程序的路径由每个子项的"UninstallString“值指定
不使用MSI的安装程序正是使用此技术在ARP中显示以支持或卸载。
更多详细信息请访问:http://msdn.microsoft.com/en-us/library/aa372105%28v=vs.85%29.aspx
发布于 2014-12-26 22:05:04
msiexec.exe是用于安装/卸载任务的一般过程。它以特定的程序id /类id作为参数,其格式为GUID -您发布的长十六进制字符串。
即使你没有看到用/x开关执行,当你选择直接从控制面板卸载某些东西时,它也会悄悄地传递这个字符串-结果就是卸载。
https://stackoverflow.com/questions/27658127
复制相似问题