我无法卸载或安装该应用程序。这个特定的计算机无法访问互联网,我也没有物理访问权限,因此大部分可谷歌到的结果都不太有用,因为它们建议运行来自Microsoft的exe文件。
解决这个问题的手动步骤是什么?我无法物理接触这台机器,也似乎没有办法将文件传输到它上面。这是我正在开发和测试的代码。我尝试了修复和删除,但都失败了。我已经搜寻了注册表,但我可能漏掉了某些东西。
如果这在超级用户上更好,我很乐意移动它。
我遇到了卸载应用程序的相同问题,该程序包括两个Windows服务,因此不可避免地需要自定义操作。 我通过运行PC Tools Registry Mechanic解决了这个问题。 不幸的是,赛门铁克已经停止了该产品。 但是,据称Microsoft Fixit可以帮助解决与注册表相关的问题。http://support.microsoft.com/mats/Program_Install_and_Uninstall
1001通常意味着一个InstallUtil(Installer Class)自定义操作失败了。由于这是一个“定制”操作,所以很难给出更详细的答案。也无法确定哪些代码会抛出异常。
如果您想保存这台机器并且不必重建它,那么您需要记录卸载操作以获取正在失败的自定义操作的名称,使用ORCA来调整MSI以削减自定义操作,重新缓存MSI并执行卸载操作。
现在您已经知道了以下内容:
1)在开发/测试生命周期中始终使用虚拟机来测试您的MSI
2)尽可能避免使用自定义操作
3)永远不要使用InstallUtil自定义操作。它们不是一个好的模式或实践。
1.打开控制面板,右键点击获取修复选项。 2.修复后再次卸载。 这样软件就被卸载了。
大多数这样的MSI错误可能涉及自定义操作或服务配置,就像Chris所说的那样。
如果真的很重要,你应该获取Orca——用于检查MSI文件的SDK工具。您可以在this answer中查看该工具操作的一些截图。然后检查Custom Action表和InstallExecuteSequence表的末尾(按序列号排序),并报告您在那里找到的条目。
不幸的是,似乎唯一获得Orca的方法是安装Windows SDK。或者,您可以下载第三方安装程序工具的试用版。
我猜测,在InstallFinalize之后有一个即时模式的自定义操作返回了某种错误代码。简而言之,您可以在InstallExecuteSequence中报告InstallFinalize之后的所有项目,我们可能可以缩小范围。解决在Windows Server 2012 R2中卸载Windows服务的1001问题,我所做的是:
选择修复服务
关闭小应用程序,再次选择修改服务
现在选择卸载。
希望这可以帮到您