欢迎光临
我们一直在努力

Windows Live Essentials安装0×80040609错误

建站超值云服务器,限时71元/月

  前两天在家中另一台计算机上安装最新的 Windows Live Essentials 2011 时,遇到了无法安装的问题,重试多次均是如此。按照 Windows 程序的老规矩,安装程序给出了错误代码:0×80040609

  寻找方案无果

  第一反应当然是点击“获取帮助”链接,但弹出的帮助网页上并没有提供有价值的帮助。

  第二方案,上网搜索。果然这个问题在网上不少人遇到,而且有朋友 Leo Chen 写出了解决方法,那就是“打开 Windows 防火墙”,但实际上它在我的电脑上运行正常。看来,我遇到的问题原因并不在这里:

image

  上图来自 Leo Chen 的文章。在我的计算机上,错误ID相同,但“源”是不同的 WLiveRemoteService。也就是说,可能会有多种错误原因产生同一个错误代码。我们不能什么时候都依葫芦画瓢,而是应该具体情况具体分析,找准问题的根本原因。

  wbpluto喜欢在介绍错误解决方法时,能同时介绍自己分析并找出错误原因的步骤,并对其中的原理进行解释,让读者能够学到更多真本事,也就是“授之以渔”,而不是只会说“这个问题应该这样解决”

  分析原因

  首先想到,微软在 Windows 中的软件包,一般都使用的是 MSI 格式,虽然 Windows Live Essentials 2011 安装文件是 EXE 可执行程序,但由于其是多个应用程序的集合,应该也是由 MSI 打包而来的。如果能够找到其中的 MSI 安装包,单独安装并分析出错的组件,那应该就很好分析并解决了。

  我使用能够查看 EXE 文件内部资源的 PE Explorer 软件打开安装包,发现,其中有一个文件夹名为 PACKAGE。比较可疑的名字,这里面的资源会不会是各个组件的 MSI 安装包呢?

2

  在PACKAGE 上单击右键,释放所有资源,直接单击确定,不用设置什么,让软件将程序中所有的资源都释放出来:

3

  找到释放出来的文件夹,打开 PACKAGE 文件夹,其中的文件都是 RES 后缀名:

4-1-res

  其实啊,他们都是 CAB 格式的存档文件,不信把它们全都重命名为 CAB 后缀看看吧。这个步骤使用命令更方便,在 PACKAGE 文件夹上按住SHIFT单击右键,打开命令提示符窗口,运行:

  ren *.res *.cab

  即可把所有文件一起重命名了。双击打开,果然是可以打开的,CAB 里面是 7z 压缩文件!我用 WinRAR 把 CAB 中的 7Z 们一股脑都解压缩出来:

4-2-7z

  精彩内容,请点击下一页!#p#副标题#e#  7z 文件的文件名已经泄漏天机,很明显这些文件就是各个 Live 软件组件的安装包,只不过被压缩成 7z 格式了。于是再把它们一股脑释放出来,晕,竟然又得到了 CAB 文件:

4-3-cab

  我就不信这是个无底洞了,再释放,终于得到了想要的 MSI 安装包:

4-4-msi

  微软把这些安装包都视为宝贝,竟然包裹了一层又一层,这是喜剧电影里才有的情节吧!微软真是太幽默啦!完整的包裹关系为:

  MSI → CAB → 7z → CAB

  算了,一笑而过吧。来看看手动使用 MSI 来安装出错的那个软件包会怎么样,因为 MSI 提供的原始出错信息肯定比打包后的 EXE 更接近真实的错误原因。根据 EXE 错误提示中的“源”属性,找到 WLRemoteService-i386.msi

55

  运行之后,提示找不到 Windows Live Remote Service 的原始安装文件 WLRemoteService-i386.msi,让手动指定(此处未截图)。手动指定到此处的 WLRemoteService-i386.msi,结果还是说找不到。这让我想起之前《Visual Studio 2008 安装失败(“Web 创作组件”无法安装)的解决办法》一文中,也有类似的问题,是因为安装了相同组件的不同版本,导致另一个版本无法安装,系统不认可这个版本的 MSI 安装包。

  于是想起来,之前安装过 Windows Live Essentials 2011 的 Beta 版本,应该是卸载的时候没有卸载干净,虽然控制面板“卸载程序”中找不到 Live 组件了,但在系统中还保留了 Windows Live Remote Service,于是最终导致了这样的问题。

  动手解决

  可是没有旧版本的安装包,也找不到卸载程序,怎么样将其卸载掉安装新版呢?

  安装在系统中的 MSI 程序包都在注册表中有记录,只要找到并删除这个记录,也就相当于将其卸载,这样就可以顺利安装新版本了。于是打开注册表编辑器,搜索“Windows Live Remote Service”名称,果然,在 HKEY_CLASSES_ROOT\Installer 中找到了这个组件的记录。将 Installer 下的这个字符串项整个删除(使用 Windows Installer Cleanup 程序应该也同理),重新安装新版的 WLRemoteService-i386.msi,果然就能够顺利安装了!

  对比了一下 HKEY_CLASSES_ROOT\Installer 中前后两个版本的记录,他们的 PackageCode 代码是不同的。在安装和卸载 MSI 软件时,系统就是根据这个暗号来判断 MSI 文件是否是软件原始的安装包的:

6

6-2

  最后重试重新运行完整的 EXE 安装包安装 Windows Live Essentials 2011,本以为会顺利完成,但再次出现了两个错误:

7

  现在就一点都不用紧张了,应该是同样的原理,有其他的几个旧版本组件也没有正常卸载掉。按照相同的方法将他们清理掉,再次安装,就完全没有问题了!

  总结

  至此,通过一步一步的分析深入,非常精确的确定了的原因和病灶,并顺利的接解决了此次问题,并且还发现了微软打包程序的小秘密,可以说收获还是不小的。在此wbpluto把其中的经验分享给大家,希望大家以后遇到问题也能够自己解决。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Windows Live Essentials安装0×80040609错误
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址