【问题标题】:Error 1001 on uninstall卸载时出现错误 1001
【发布时间】:2013-04-15 23:24:56
【问题描述】:

错误 1001。卸载时发生异常。这个例外 将被忽略,卸载将继续。然而 卸载完成后应用程序可能无法完全卸载 完成

我无法卸载或安装该应用程序。这个特定的盒子无法访问互联网,我也没有物理访问权限,因此大多数可谷歌搜索的结果都没有用,因为它们建议运行 Microsoft 的 exe。

解决此问题的手动步骤是什么。我无法实际接触到这台机器,也没有办法让我将文件放到它上面。这是我正在开发和测试的代码。我试过修复和删除失败的。我已经搜索了注册表,但我必须在这里遗漏一些东西。

如果这对超级用户更好,我很乐意移动它。

【问题讨论】:

  • 让我告诉你一个故事。曾几何时,a 收到安装程序缺陷票,说它无法卸载:错误 1001。调查显示开发人员编写了一个自定义操作,用于在安装期间创建和启动服务,并在卸载期间停止/删除它。他没有费心将代码包装在 try catch 中。开发人员安装在机器上,使用 SC 命令删除服务,然后在卸载运行时,他的自定义操作引发异常并回滚安装程序。我告诉开发者他正在重新发明轮子.....
  • 他应该利用 Windows Installer 的内置功能(ServiceInstall、ServiceControl),而不是将低质量的代码注入关键路径。我手动重新创建了服务并运行了卸载。我注意到安装程序按设计运行的票证并将其重新分配给开发人员以修复他的垃圾。这种情况发生了很多次,以后每当我在工单中看到 1001 时,我都会按照设计的功能将其关闭。
  • 我不完全确定它是否启动了一项服务,因为它在 IIS 中运行,但可能存在类似的情况。
  • 这只是一个例子。

标签: installation windows-installer


【解决方案1】:

我在删除我编写的包含两个 Windows 服务的应用程序时遇到了同样的卸载问题,因此无法避免自定义操作。我解决了它正在运行 PC Tools Registry Mechanic。不幸的是,赛门铁克已经淘汰了该产品。但是,众所周知,Microsoft Fixit 可以帮助解决与注册表相关的问题。 http://support.microsoft.com/mats/Program_Install_and_Uninstall

【讨论】:

  • 很有趣,你刚刚回复了这个问题,因为我今天又遇到了这个问题。虽然无法从那台机器访问互联网
  • 修复了无法为我卸载 TFS 2012 Power Tools 的问题。谢谢:)
  • 微软工具对我有用,谢谢!
  • 该实用程序对我来说就像一个魅力。感谢您为我节省了大量手动清理注册表的时间。顺便说一句,如果您运行该工具,请耐心等待。需要几分钟才能完成。
【解决方案2】:

1001 始终表示 InstallUtil(安装程序类)自定义操作失败。不可能给你一个更详细的答案,因为,嗯,这是一个“自定义”操作。不知道是什么代码引发了异常。

如果您想保存这台机器而不是重建它,您必须记录卸载以获取失败的自定义操作的名称,使用 ORCA 调整 MSI 以删除自定义操作,重新缓存 MSI并执行卸载。

您现在已经明白了为什么要这样做:

1) 在开发/测试生命周期中始终使用 VM 来测试您的 MSI

2) 尽可能避免使用自定义操作

3) 切勿使用 InstallUtil 自定义操作。它们不是一个好的模式或做法。

【讨论】:

  • 我很想做其中的一些事情,但我没有设置公司的开发机器政策。有没有什么方法可以用别的方法擦薄?注册表中保留这些东西的任何地方然后我可以删除目录吗?实际上,我们很快就会开发虚拟机,但我们还没有。
  • 还有 MSI Zap,但这只是删除了 Windows 安装程序/添加/删除程序元数据。您必须手动卸载应用程序资源。我让开发人员请我吃午饭,让我用我提供的答案发挥我的魔力。
  • 我无法将任何东西移到那台机器上。我需要手动解决方案。
  • 然后找出自定义操作失败的原因并尝试手动将机器操纵到不会失败的状态。
  • @ChristopherPainter 我没有在项目中使用 CA。我已使用 BA 将每个用户和每个机器上下文 msi 捆绑到 EXE。当我以管理员身份运行 EXE 时,它正在工作,双击安装程序正在抛出 ERROR 1001 并且安装失败。是否可以捕获 WIX EXE 安装程序异常并向用户显示“以管理员身份打开”之类的消息。我提出了一个问题。请查看这个问题 stackoverflow.com/questions/27190362/… 并指导我。
【解决方案3】:

1.转到控制面板然后右键单击以获取修复选项。 2.修复它,修复后再次卸载。 到这里,软件卸载了..

【讨论】:

  • 谢谢。它节省了我一整天
  • 这应该是一个“次要”的答案。
【解决方案4】:

制作一个详细的日志文件

msiexec.exe /I "File.msi" /QN /L*V "C:\Temp\msilog.log"
/I = run installation sequence
/L*V "C:\Temp\msilog.log"= verbose logging
/QN = run completely silently

在记事本中打开它,然后search for value 3。同时检查 the system's event log 是否有任何线索。

【讨论】:

  • 谢谢,我在另一台电脑上也遇到了这个问题。我认为这个很少使用的项目在其安装程序中存在缺陷,我将不得不追查。在生产中它永远不会与我认为与之冲突的应用程序一起安装,但在开发中它肯定会发生。
【解决方案5】:

像这样的大多数 MSI 错误可能涉及自定义操作,或者像 Chris 所说的那样涉及服务配置

如果这对追踪来说真的很重要,您应该使用 Orca - 用于检查 MSI 文件的 SDK 工具。您可以在this answer 中查看该工具的一些运行截图。然后检查 Custom Action 表InstallExecuteSequence 表 的末尾(按序列号排序)并报告您在那里找到的条目。

不幸的是,获得Orca 的唯一方法似乎是安装the Windows SDK。或者,您可以下载third party installer tools 之一的试用版。

我的猜测是在 InstallFinalize 之后有一个即时模式自定义操作返回某种错误代码。简而言之,您可以在 InstallExecuteSequence 中报告 InstallFinalize 之后的所有项目,我们可能可以缩小范围。

【讨论】:

  • 我实际上有 Orca,但从未真正使用过它。由于我是相关应用程序的开发人员,我的直觉是这些应用程序可能正在共享事件日志或性能计数器类别。当两者都安装时,它不会优雅地处理卸载,从而导致冲突状态。我不知道,但它的东西看。尤其是当我尝试 Orca 之后。
  • 如果您发布 Custom Action TableInstallExecuteSequence Table 结尾之一的屏幕截图,我们可以提供一些关于什么的猜测可能是错的。
  • @SteinÅsmul 我没有在项目中使用 CA。我已使用 BA 将每个用户和每个机器上下文 msi 捆绑到 EXE。当我以管理员身份运行 EXE 时,它正在工作,双击安装程序正在抛出 ERROR 1001 并且安装失败。是否可以捕获 WIX EXE 安装程序异常并向用户显示“以管理员身份打开”之类的消息。我提出了一个问题。请查看这个问题 stackoverflow.com/questions/27190362/… 并指导我。
【解决方案6】:

解决了我在 Windows Server 2012 R2 中卸载 windows 服务的 1001 问题:

  • 进入程序并选择修改服务
  • 选择维修服务

  • 关闭小程序,再次选择修改服务

  • 现在选择卸载。

    希望对你有帮助

【讨论】:

    猜你喜欢
    • 2016-03-27
    • 1970-01-01
    • 2016-03-23
    • 2016-04-03
    • 2016-10-15
    • 2018-11-27
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多