【问题标题】:Uninstall without an MSI file在没有 MSI 文件的情况下卸载
【发布时间】:2010-09-24 23:18:27
【问题描述】:

Windows Installer 在尝试卸载软件包时经常遇到问题,但它抱怨:

您尝试使用的功能位于不可用的网络资源上。

当原始 MSI 根本不可用时,是否有卸载此类软件包的已知方法?

【问题讨论】:

  • 请参阅this answer 了解卸载 MSI 软件包的方法列表。
  • 请参阅this answer,了解问题原因的全面解释(也请参阅下面的答案)。

标签: windows windows-installer


【解决方案1】:

更新,Stein ÅsmulThere is a whole list of cleanup approaches here(推荐)。


更新

This newer support tool 如果您有需要卸载的失效 MSI 软件包,可以在最新的 Windows 版本上试用。 这个新工具似乎也被弃用了。

也许可以试试 saschabeaumont's 答案中链接的工具。


要求原始源媒体是不正常或标准的 MSI 行为 - 这表明 MSI 包设计不当。如果您在使用供应商 MSI 时遇到这种情况,强烈建议您报告他们的支持团队的问题。以下是对问题的更全面的解释Why does MSI require the original .msi file to proceed with an uninstall?

在大多数情况下,即使您没有 MSI 的原始安装数据库,也可以通过 控制面板添加/删除程序 卸载 MSI 软件包 -卸载是从系统文件夹 %SystemRoot%\Windows\Installer 中的原始 MSI 的缓存副本运行的(在某些情况下,此缓存的 MSI 可能会丢失,see section 12 here 可能是原因)。 p>

较早版本的 MSI 往往会更频繁地触发此问题(要求原始安装介质)(当时的 Office),旧 MSI 文件仍可能导致只能使用 msizap.exe 工具(此工具已弃用过时不再支持)。这个命令行工具 (msizap.exe) 也有一个可用的 GUI (MSICUU2.exe),这两个工具都被弃用了(试试上面列出的新清理工具的链接) .

仅作记录:如果您有权访问实际用于安装产品的原始 MSI,则可以使用它来运行卸载。它必须是所使用的确切 MSI,而不仅仅是一个类似的。每个 MSI 文件都有一个唯一的包 guid,因此 Windows 会知道它是否是正确的。

相关答案:

【讨论】:

    【解决方案2】:

    有一个来自 Microsoft 的 MSI 清理实用程序,Windows Installer Cleanup Utility已弃用工具,不支持和不安全 使用 - 也许试试这个答案:Uninstall without an MSI file)。

    或者CCleaner 通常可以这样做

    【讨论】:

    • 不不不不不……它使您的系统处于肮脏状态。请参阅robmensching.com/blog/posts/2009/3/6/… 了解更多信息。
    • 那篇文章没有解释如果您没有在机器上的某个 GUID 标记的文件夹中留下多个 Gb 的 MSI 输出该怎么办。
    【解决方案3】:

    看看微软发布的名为MSIZap的工具。


    更新

    MsiZap.exe 已被弃用一段时间。所有最新版本的 Windows 都不支持使用它,并且它被认为是一个非常使用起来不安全的工具

    我添加了一个指向更新的 Microsoft 支持工具的链接,该工具旨在清理安装,但此时此工具似乎已被弃用。我已经从 cmets 部分删除了链接。

    也许可以试试下面saschabeaumont's答案中链接的工具。

    【讨论】:

    • MSIZAP === 糟糕!有关原因的更多信息,请参阅robmensching.com/blog/posts/2009/3/6/…
    • 很遗憾,Microsoft 不再提供此工具。说“MSIZAP == BAD”很好,但这很难解决问题,是吗?在不提供替代方案的情况下说某事不好是无益的。
    • Windows 8 不支持新工具。
    【解决方案4】:

    你没有做一些疯狂的事情,比如去 C:\Windows\Installer\ 并删除那里的文件吗?

    MSI 文件的一个缺点是您需要完整的 MSI 文件才能卸载或修复应用程序。 Windows 喜欢存储 MSI 的副本。它还将 MSI 文件从通用名称重命名为没有表(我可以找到)的 GUID,以将原始名称(例如:Office2010.msi)映射到新的 GUID,因此您拥有一台浪费了许多 GB 空间的 PC不能删除。不到 1 年的机器可以轻松达到 8 GB(例如:我的)。

    【讨论】:

    • 不正确,MSI 数据库本身通常在提取嵌入式 CAB 文件后最多只有几 MB。通常只有没有 CAB 文件的 MSI 被缓存在系统中
    • 这里是第二个 sascha,缓存在 C:\Windows\Installer 中的 MSI 是没有 CABS 的安装程序 MSI 的精简版本。此缓存副本用于安装后的修复/卸载。仅当修复需要重新安装文件或 MSI 设计不当并运行“要求”原始源的操作时,才需要源媒体。据我了解,未来版本的 MSI 将在安装之前缓存整个 MSI。
    • @SteinÅsmul 为什么不删除重复的 cmets 之一
    • 即使 MSI 文件被删除,它们仍然占用 4GB 的数据,另外 3GB 在我的“$PatchCache”文件夹中,您可以安全地刷新(除非您打算删除补丁,这永远不会发生)。这不像我安装了数百个程序。尽管这个缓存很大并且浪费了高清。
    • MSI 文件的缓存方式发生了变化,从 Windows 7(MSI 版本 5)开始,MSI 文件现在被缓存为完整大小,以避免破坏影响设置时 UAC 提示的文件签名启动(一个已知的 Vista 问题)。这可能会导致磁盘空间消耗的巨大增加(某些系统为几 GB)。
    【解决方案5】:

    仅供参考,这篇文章解释了根本问题https://superuser.com/q/293542/245923

    您可以使用产品代码卸载它:

    msiexec.exe /x {your-product-code-guid}
    

    您可以从 MSI 本身或您用于构建 MSI 的任何工具获取此代码。

    请注意,当您卸载产品时,它会使用缓存的 MSI,因为只有原始 MSI 知道如何自行卸载。当您使用产品代码时,它使用来自 C:\WINDOWS\Installer 的缓存 MSI。

    【讨论】:

    • 这会弹出要求我定位 msi 文件
    • 这与卸载程序和功能所做的相同
    【解决方案6】:

    请注意,Microsoft 现已发布官方工具来解决这些问题,而不会出现以前 MSIZAP 存在的问题。

    【讨论】:

    • 从那以后它就被弃用了
    • 这很好用。列出大量显然仍在您的系统上运行的“旧”应用程序。它确实有效。
    • 对于试用此工具的人,请在此处报告它是否真的有效。
    • @SteinÅsmul 是的,效果很好。它允许我卸载没有 msi 安装程序的 jetbrains 托盘通知工具
    • 在 Windows 10 Fall Creators Update 之后,我无法安装较新版本的 Futuremark SystemInfo(3DMark 随附),因为它在卸载之前的版本时失败,因为 .msi 丢失了。此应用程序解决了该问题。非常感谢。
    【解决方案7】:

    控制面板 --> 添加/删除程序?

    编辑: 您的帖子没有提到使用添加删除程序来卸载应用程序,您说的是“Windows Installer”(MSIEXEC - 请参见下面的链接),这不是一回事。

    http://msdn.microsoft.com/en-us/library/aa367988(VS.85).aspx

    【讨论】:

    • 这就是我的问题开始的地方。
    • 卸载使用提供的卸载程序,通常是 MSI。
    • 我没有投票给你,但我认为我几乎暗示了 epchwolf 所说的内容。
    • 顺便说一句,如果它需要一个 MSI 文件,我认为它很明显是 Windows Installer。
    猜你喜欢
    • 2019-09-30
    • 2022-06-15
    • 2013-03-14
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 2021-03-05
    • 2014-02-24
    • 1970-01-01
    相关资源
    最近更新 更多