【问题标题】:how to manually remove MSI installation?如何手动删除 MSI 安装?
【发布时间】:2010-11-01 13:48:06
【问题描述】:

我正在学习 VS 2008 安装项目来为我们的 C# 应用程序创建安装。我在卸载过程中尝试删除 exe 本身时犯了一个错误。现在我手动删除了 exe 文件,但该条目仍在添加删除程序列表中。我尝试安装固定的较新版本,但 msi 不允许我这样做。

如何手动删除旧版本(我可以使用 regedit,没问题)?我正在使用XP机器。谢谢

编辑: 在该卸载注册表项中删除其子项后,我仍然无法安装我的较新版本。

【问题讨论】:

    标签: .net windows windows-installer deployment-project


    【解决方案1】:

    如果这是一个适当的小更新/小升级 .msi 文件来修复无法卸载的早期版本,只需使用msiexec /i updated.msi REINSTALLMODE=vomus(也可能是REINSTALL=ALL)安装它。 vomus的v会让Windows Installer用新的包替换旧包,然后就可以正常卸载了。

    当然,现在所有这些都是不必要的,因为能够在虚拟机上进行测试,您可以恢复...

    【讨论】:

    • 谢谢!到目前为止,我一直在盯着 dumbest 错误情况。 “产品已安装,请先卸载”后跟“仅对已安装产品有效”。谈论真气。
    • 绝对的救星。刚刚花了一个小时试图删除安装错误的 msi。可爱的工作。谢谢。
    • msiexec /i updated.msi REINSTALLMODE=vomus 也适用于我制作错误的 MSI(卸载自定义操作总是失败)。删除失败的自定义操作后,重建 MSI,我可以运行上述命令来修复这种情况。
    • 感谢您从我糟糕的 MSI 中拯救出来。
    【解决方案2】:

    在此处删除注册表中的安装条目。您可能需要从安装项目中找出 GUID。

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall OR
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
    

    还要检查 DisplayName,如果您的产品定义了友好名称,这会很有帮助。

    【讨论】:

    • 有一个来自 MS 的工具可以帮助解决这个问题,请参阅 support.microsoft.com/kb/2438651
    • 如何从安装项目中找到 GUID?我有逆戟鲸。
    • 由于在尝试匹配部分名称/字符串时通过 regedit 搜索可能会很困难,我建议将部分注册表导出到文本文件以便在那里搜索而不是查找要编辑的键。
    • 此外,如果安装程序不需要提升,请删除以下键:HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\{<Product-GUID>}。否则使用HKLM hive。
    • 我还必须从HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products 中删除一个密钥,否则当我尝试重新安装时它继续告诉我安装了另一个版本的程序。
    【解决方案3】:

    使用msiexec /x {guid product code}。如果您的 MSI 数据库搞砸了并且这不起作用,请尝试 msizap

    【讨论】:

    • 除了它实际上并没有完全卸载您的应用程序。任何组件和资源都将被放弃,后续安装的行为会很奇怪(比如从不卸载),因为 MSI 会认为它们是共享组件。
    • 如果发生这种情况(例如,因为您的应用程序的 .msi 被 MSI 缓存的副本已被删除),请使用原始 .msi 而不是产品代码运行 msizap
    • 在 msizap 的 cmets 中,建议改用 support.microsoft.com/mats/Program_Install_and_Uninstall,这对我有用。
    • +1 到 umbyersw 的评论。该程序易于使用,它删除了我的整个安装,包括服务。
    • @umbyersw 谢谢 - “修复它”(尽管它的名字很俗气)为我消除了麻烦的 Java 安装。
    猜你喜欢
    • 2018-08-17
    • 2021-11-19
    • 2020-11-17
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    相关资源
    最近更新 更多