卸载有故障的MSI - >系统崩溃

时间:2015-02-28 10:48:20

标签: visual-studio-2010 crash operating-system windows-installer regedit

一些客户的系统上安装了MSI(服务器和台式机,winxp,win7,server2k8r2,server2012r2)。

MSI由默认的VS2010“Visual Studio安装程序安装项目”创建。

安装时创建了2个注册密钥。

HKLM\Software\Microsoft\Silverlight\AllowElevatedTrustAppsInBrowser = 1
HKLM\Software\Wow6432Node\Microsoft\Silverlight\AllowElevatedTrustAppsInBrowser = 1

卸载时,在某些系统上,整个Software \ * \ Microsoft节点都会被删除。

任何人都知道如何在不崩溃系统的情况下解决这个问题。 (这已经发生了几次,但仍然有很多安装。)


zip包含一个安装需求+证书+ MSI的exe。 MSI本身位于IG文件夹中。

还有一个install.log& uninstall.log(来自windows 7虚拟盒) https://www.dropbox.com/sh/ku3vqoajfxbnluq/AACQ6evVw4pzRJ6WTzqCHR8Ba?dl=0

2 个答案:

答案 0 :(得分:0)

这让我想起了类似的事件(使用InstallShield而不是VS,但都创建了MSI)

InstallShield 2008 HOTFIX: COM Extraction Causes System Corruption during Uninstall

根据信息,您的问题不能直接回答。我需要评估.MSI寻找自定义操作,注册表表项和任何自注册DLL。卸载日志文件也有帮助。您可能必须从恢复介质启动才能访问它,但如果您记录卸载它应该在那里。

在更多客户受到影响之前,您应该将此视为紧急情况。调查根本原因并发布补丁,以便客户可以安全地卸载。

答案 1 :(得分:0)

我唯一能看到的错误就是您认为您正在更改本机64位注册表和32位Wow注册表中的Silverlight注册表项。您的安装是x86,您不能这样做。如果您要在32位世界中更改该密钥,则只需使用正常的注册表路径,并将x86安装映射到WoW6432。所以你有两个不同的组件卸载相同的东西,其中一个错误地直接寻址WoW6432位置。我不知道这是否会搞砸,但这显然是错误的。您需要x64系统的x64设置,并且作为客户安全问题,我不会在不向客户明确的情况下更改这些策略设置。

唯一的另一个奇怪的事情是你似乎要安装uninstall.bat文件两次。里面是什么?如果它卸载了应用程序,使用控制面板会有什么问题?如果用户正在运行卸载,那么希望没有任何可能负责的东西。