2

所以我一直试图了解 Windows Installer 是如何工作的,试图解决这个问题。就目前而言,我去添加/删除程序并删除软件。
我猜这会调用msiexec.exe /x {product id}并删除该软件。问题是它真正删除的唯一东西是桌面图标和几个文件,我认为是一个注册表项。

从那以后,我一直试图了解msiexec.exe /x它被调用时的确切作用。我认为它会遍历文件InstallExecuteSequence中的表格.msi并运行所有操作?我真的不是百分百确定。我看到,查看.msi文件内部,有一个RemoveFileRemoveRegistry表,还有一个 DeleteService 操作,但我只是不明白它们是如何组合在一起的,以及为什么在我安装软件时它没有删除它放入的所有内容。

此处的最终目标是卸载服务、删除注册表项并删除在程序文件中创建的根文件夹。任何人都可以提供任何见解吗?

4

2 回答 2

0

删除文件等用于升级到新版本。即旧版本有一个old.dat文件,新版本有new.dat,所以你告诉msi删除old.dat,进行整理。

您是否测试过在干净的机器上会发生什么,因为如果我遇到这种行为,我立即怀疑注册表/安装程序数据库会被搞砸。

于 2012-05-30T22:05:35.463 回答
0

因为您的最终目标是卸载服务/软件,您可以使用以下命令(从“cmd”-shell 运行它):

    wmic product where name="product name" call uninstall

要查看 wmic 命令的更多示例/文档:转到此处

于 2012-05-30T22:06:31.967 回答