所以我一直在努力了解Windows Installer如何正确地尝试解决这个问题。目前我转到添加/删除程序并删除软件
我猜这叫msiexec.exe /x {product id}
并删除软件。问题是它真正删除的唯一事情是桌面图标和几个文件,我认为是一个注册表项。
我一直试图了解msiexec.exe /x
在调用时的确切含义。我认为它通过InstallExecuteSequence
文件中的.msi
表并运行所有操作?我真的不是百分百肯定。我看到,在.msi
文件中,有一个RemoveFile
和RemoveRegistry
表以及一个DeleteService Action,但我只是不知道它们如何组合在一起以及为什么它我没有删除安装软件时放入的所有内容。
此处的最终目标是卸载服务,删除注册表项,并删除在程序文件中创建的根文件夹。任何人都可以提供任何见解吗?
答案 0 :(得分:1)
我通过创建调用.bat文件来删除所有内容的自定义操作来解决这个问题。
如果您需要帮助,可以查看此回复以了解该怎么做: https://stackoverflow.com/a/998756/1427105
答案 1 :(得分:0)
删除文件等用于升级到新版本。 即旧版本有一个文件old.dat,新版本有new.dat,所以你告诉msi删除old.dat,整理一下。
您是否已经过测试,看看干净机器上发生了什么,因为如果我遇到这种行为,我会立即怀疑注册表/安装程序数据库是否混乱。
答案 2 :(得分:0)
因为您的最终目标是卸载服务/软件,所以您可以使用以下命令(从“cmd”-shell运行它):
wmic product where name="product name" call uninstall
要查看wmic命令的更多示例/文档:goto here