WIX:安装程序在卸载时不删除属性

时间:2016-12-16 14:58:37

标签: wix installer uninstall

我使用wix生成的msi文件来安装软件。安装软件工作正常,但有时在卸载过程中会出现一些问题。

" Programm Files"中的所有文件按预期删除,但卸载后,系统上仍保留一些数据:

  • "程序和功能"
  • 中的应用程序条目
  • 安装程序位于" C:\ Windows \ Installer \"
  • (和一些指向上述两件事的注册表项)

问题是:只要这些数据在系统上,就无法重新安装相同版本的软件。安装程序显示"修复/删除"行动。他们都没有工作了。

但是为什么安装程序不会删除这些文件/条目? 可能是什么问题?

一些注意事项:执行MajorUpgrade时,新安装程序会删除所有旧条目。但这不是解决方案。 答案是的,所有这些注册表项和文件都可以手动删除。之后可能会重新安装,但这也不是用户的解决方案。

1 个答案:

答案 0 :(得分:1)

这没有多大意义,主要是因为安装和卸载是完整的事务,因此如果卸载失败,它将回滚并且整个产品仍然存在。它不会是部分卸载,其中有些东西留下而其他东西被移除。有些事情要看:

  1. 使用msiexec / x {productcode} / l * vx [日志文件的路径]执行卸载日志,以查看是否显示了某些内容,例如是否成功完成。

  2. \ Windows \ installer目录中装满了msp,msi,mst文件,因此不清楚你的意思是什么"安装程序"在那里,因为有很多缓存的安装程序文件。如果程序和功能中有条目,我同意你的意见。这只意味着仍然安装了该产品。

  3. 目前尚不清楚为何提及升级或整个方案的内容。但是,如果您有两个安装,其中一个安装在另一个上,那么您将无法正常运行。卸载一个可以删除所有文件,但留下产品。

  4. 如果使用相同的ProductCode进行多次安装和测试,或者您尝试使用MsiZap等工具进行清理,则系统可能不再干净。每次都使用干净的虚拟机,然后查看是否遇到同样的问题。如果在一台可能因重复测试而被加扰的测试机器上发生这种情况,则可能有助于为您的设置提供新的ProductCode和新的UpgradeCode。