2024年2月9日发(作者:)

Windows XP SP3 已经发布了一年半,笔者却一直未见 MSDN 发布整合有 SP3 的

Windows XP Media Center Edition 2005(以下简称 MCE 2005)安装源镜像,而 Windows XP 的家庭版、专业版都已经先后发布了 with SP3 的最新镜像。

起初,笔者还以为 MSDN 已经懒得再为 MCE 2005 进行更新,毕竟使用这个系统的人不是很多。但最近笔者发现,将 SP3 整合至 MCE 2005 安装源存在着非常严重的版本冲突问题。所以,MSDN 并不是懒得对 MCE 2005 进行更新,而是做不出像样的 MCE 2005 with SP3 镜像来。

★ 问题起因

关注笔者博客的朋友可能还记得笔者今年四月所写的一篇《新瓶装旧酒 -Vista/7 风格之 Windows XP 最终收藏版》。最近,笔者接到一位网友发来的反馈邮件,那篇文章介绍的 Windows XP with SP3 四合一光盘,其它版本的安装使用都很正常,惟独 MCE 2005 会出现下述问题:

我们知道,将 SP3 整合至 Windows XP 安装源的常规方法是 SP3 安装程序的 -S(-INTEGRATE)参数。如果我们照此方法将 SP3 整合至 MCE 2005 安装源,虽然整合过程可以顺利完成、不会出现任何错误,但当我们用这个整合过的 MCE 2005 with SP3 镜像安装系统时,在安装程序运行到“预计剩余时间 30

分钟-22 分钟”这个阶段,也就是安装系统组件的这个阶段时,必然会报错:

“需要 Windows XP CD 2 上的文件 ,请输入文件的所在位置并点击确定”。

可是,即使我们找遍整个 MCE 2005 with SP3 安装源,也找不到这个文件,安装无法继续。

此时,假如我们选择了“取消”,跳过 文件的复制,安装程序就会将“剩余 30 分钟-22 分钟”这个阶段步骤全部甩掉,跳过它直接进入下面的“安装开始菜单”、“注册组件”等步骤。接下来,安装程序虽然也可以运行完、装出来的也是一个显示为 MCE 2005 的系统,但是由于整个“剩余 30 分钟-22 分钟”的阶段都跳过了,所以 MCE 的专有组件将一个也安装不上,甚至连 IE、OE 等系统组件也残缺不全,我们得到的只是一个什么组件也没有的“天生残疾”的

MCE 2005 系统。

笔者接到邮件之后做了一下测试,证明属实。当日笔者制作好的、已经放入包装盒中收藏的四合一光盘,果然也存在这一问题。

★ 问题分析

安装程序找不到 文件的问题到底是怎么回事呢?其实,SP3 并不是没有为我们准备 。假如我们用 WinZip 将 335MB 的 SP3 安装程序打开,可以看到它确实提供了 82 个路径为

i386rootcmpnentsmediactri386 的 MCE 文件,其中就包括 。可是,当我们以 -S(-INTEGRATE)参数整合 SP3 时,SP3 并没有将这 82 个

MCE 文件添加至 MCE 2005 安装源,而是只更新了 Windows XP 的基本系统文件。这就是为什么安装程序找不到 的原因。

那么 SP3 为什么会偷工减料、没有将这 82 个 MCE 文件添加至 MCE 2005

安装源呢?起初笔者对这一怪现象也是百思不得其解。网上搜索了一下,许多

Windows 爱好者对此问题发表了各种看法,有人认为 SP3 误将 MCE 2005

当作了专业版,有人认为应该将 Windows Media Player 11 整合入 MCE 2005

安装源。笔者认为这些观点都没有说到点上,难以令人完全信服。经过一番研究,笔者在 MCE 2005 相关文件的版本号上发现了问题,版本冲突是这一问题的症结所在。

Windows XP Media Center Edition 先后发布过 2002、2004、2005 三个官方版本。MCE 2005 虽然在所有 MCE 中版本最高,但它却是基于 SP2 开发的,因为 2005 年还没有 SP3。直到 2008 年,SP3 才姗姗来迟。

Windows XP 的系统版本号一直是 。无论版本号的后缀怎么变,主版本号一直是 2600。例如 SP3 正式版的版本号就是 5.1.2600.5512。可是,当年 MCE 2005 的开发人员却偏偏将 MCE 那些专有组件的文件版本号设成了 ,这样就造成了一个很可笑的现象:2008 年发布的 SP3,其版本号反而比 2005 年发布的 MCE 2005 还低!

所以,当我们将 SP3 整合至 MCE 2005 安装源时,安装程序发现 MCE 2005

原有的那些 MCE 文件已经是版本号更高的 ,试问它怎么可能再把自己那 82 个版本号为 5.1.2600.5512 的文件添加进去、让低版本文件替换高版本文件呢?

有人可能会说,既然 MCE 2005 那些文件当年已经被设为 2700 了,SP3 为什么还要把自己提供的那 82 个 MCE 文件设为 5.1.2600.5512 呢?设一个不比 2700 低的版本号不就没问题了么?这可能就是传说中甲鱼的臀部 -不知哪个人的“规定”了:SP3 安装程序压缩包里的所有文件,版本号必须都是

5.1.2600.5512!

由于 SP3 提供的这 82 个 MCE 文件版本号已经被固定为 5.1.2600.5512,所以这 82 个文件也根本不可能是针对 MCE 2005 的更新了。事实上,它们只不过是针对 MCE 2004 系统的更新文件而已,MCE 2004 系统的原文件版本号不是 5.1.2700。总之一句话:SP3 只包含了 82 个适用于 MCE 2004 系统的更新文件、不包含任何适用于 MCE 2005 系统的更新文件。

★ 问题结论

经过上述分析,我们可以得出下列结论:

当我们以 -S(-INTEGRATE)参数将 SP3 整合至 MCE 2005 安装源时,

1.由于版本冲突的原因,SP3 不会把它自己提供的那 82 个版本号为

5.1.2600.5512 的 MCE 文件添加至 MCE 2005 安装源,不会替换版本号

5.1.2700 的 MCE 2005 原文件;

2.由于 SP3 实际只包含针对 MCE 2004 的更新,所以在整合 MCE 2005 时它会把安装源误当作 MCE 2004,并按照 MCE 2004 的规格修改 MCE 2005

相应的 .INF 安装信息文件;

是一个 MCE 2004 独有的文件、MCE 2005 没有这个文件。将

SP3 整合至 MCE 2005 安装源之后,由于 并没有随那 82 个文件被添加至安装源,而 SP3 又将 MCE 2005 的相关 .INF 文件修改为了

MCE 2004 的版本,所以就会在安装 Windows 时出现需要 、但又找不到 的现象。

因此,针对这个问题的最终结论是:

假如我们使用的是 MCE 2004,可以直接以常规方法整合 SP3、得到 MCE

2004 with SP3 安装源,不会有任何问题。

假如我们使用的是 MCE 2005,目前至少按照微软官方提供的方法无法得到理想的 MCE 2005 with SP3 安装源。如果我们需要 MCE 2005 with SP3 系统,最好还是首先安装原版的 MCE 2005 系统(只包含 SP2),然后再单独安装

SP3。这样安装的系统除了步骤麻烦外,没有任何问题。

★ 变通解决

首先安装原版 MCE 2005 系统(只包含 SP2)、再单独安装 SP3 的方法虽然是最稳妥,但像笔者这样希望制作 MCE 2005 with SP3 安装源的用户,还是希望将问题一步搞定。既然微软官方的方法行不通,有没有什么变通的方法可以制作出 MCE 2005 with SP3 安装源呢?经过笔者的摸索,还是有一些门路可循。

1.添加 。

这是最为简单的变通方法,既然直接将 SP3 整合至 MCE 2005 安装源会提示找不到 ,我们可以自己从 SP3 中解压缩提取 ,然后手动复制到经过整合的安装源。不过,这样得到的只是一个 MCE 2004 with SP3

安装源,原因之前已经解释过了。我们这么做等于是帮助 SP3 把 MCE 2005 完全修改为 MCE 2004、连缺的文件都帮它补上了。因此,如果我们用这样的安装源完成系统安装,启动 Media Center 组件,可以看到其版本信息显示为:Media Center 2004 v5.1.2600.5512

2.还原 MCE 2005 原版的 。

如果我们不想让 SP3 把 MCE 2005 安装源修改为 MCE 2004,就需要在整合

SP3 前备份原版 MCE 2005 的 ,这个文件直接决定了我们安装的 Media Center 是 v3.0(MCE 2005)还是 v2.8(MCE 2004)。

将 SP3 整合至 MCE 2005 安装源后,我们把备份的 复制至安装源 i386 文件夹,替换已有文件,这样 MCE 2004 with SP3 安装源就又升级为 MCE 2005 with SP3 了。此时,我们也无需再手动添加 ,因为只有 MCE 2004 需要它、MCE 2005 不需要。

不过,以这样的安装源执行系统安装时,安装程序可能又会提示找不到

与 。我们可以在已安装好的 MCE

2005 系统的 Windowssystem32wbem 文件夹找到它们,将它们手动添加至安装源即可。

以这样的方式处理后,我们可以初步得到一个名符其实的 MCE 2005 with SP3

安装源。经过测试,在安装好的系统中启动 Media Center,可以看到其版本信息显示为:Media Center 2005 v5.1.2700.2180

3.将 PlusOC 与 Sonic 组件添加至 MCE 2005 with SP3 安装源。

按照上述方法得到的 MCE 2005 with SP3 安装源虽然可以使用,但还是存在一些问题。我们知道,Windows XP 的 Media Center 相比 Windows Vista/7

Media Center 增加了 PlusOC 与 Sonic 组件。PlusOC 包括 Windows 舞者、Windows 聚会模式、Royale 视觉样式及特色屏保等组件;而 Sonic 是一个

DVD 烧录组件,这些都是 MCE 2005 系统的特色功能。但是,按照上述方法处理得到的 MCE 2005 with SP3 安装源,却只包含 Media Center 组件,不会安装原版 MCE 2005 的 PlusOC 与 Sonic 组件,因此我们还需要将这个漏洞填补上。

PlusOC 与 Sonic 组件没有被安装的原因在于 文件。原版 MCE

2005 安装源的 文件包含下列三行语句:

Freestyle=,MedCtrOCISetupProc,,HIDE,7

SonicDVDandCDBurning=,OcEntry,,,7

WinPlus=,OcEntry,,,7

其中第一行代表 Media Center 组件,第二行、第三行分别代表 Sonic 与

PlusOC。

但是在将 SP3 整合至 MCE 2005 安装源后,第二行、第三行语句就被删除了, 只剩下了第一行,所以 PlusOC 与 Sonic 组件不会被安装。

解决这个问题并非只需把第二行、第三行语句添加回 这么简单。如果我们只修改 的话,安装系统时进行到“预计剩余时间 30 分钟-22 分钟”这个阶段,安装程序又会甩掉所有步骤,装出的又是一个没有任何组件的“先天残疾”系统。因为修改一个 是不够的,其它与 PlusOC、Sonic 组件相关的文件也必须进行配合修改。具体如下:

3.1.在整合 SP3 之前,从原版 MCE 2005 安装源中备份下列文件:

(位于 i386 文件夹)_、_、_、_、_、_、_、_、_、_、_、_、_、_;

(位于 i386svcpack 文件夹)_、_;

3.2.整合 SP3 后,将备份的上述文件还原;

3.3.手动修改 ,

在 Freestyle=,MedCtrOCISetupProc,,HIDE,7 语句后面添加

SonicDVDandCDBurning=,OcEntry,,,7

WinPlus=,OcEntry,,,7

两行语句;

3.4.手动修改 ,在 [SourceDisksFiles] 后面添加下列语句:

= 100,,,,,,,32,0,0

= 100,,,,,,,20,0,0

= 3,,,,,,_x,,3,3

= 100,,,,,,,32,0,0

= 100,,,,,,,20,0,0

= 3,,,,,,_x,,3,3

3.5.手动修改 ,在 [Files] 后面添加下列语句:

d1,

d1,

d3,

d1,

d1,

d3,

3.6.手动修改 ,在 [ProductCatalogsToInstall] 后面添加下列语句:

这样才完成了向 MCE 2005 with SP3 安装源添加 PlusOC 与 Sonic 组件的全部步骤。

笔者用经过上述全部步骤处理的 MCE 2005 with SP3 安装源进行了测试,整个安装过程非常顺利。装好的 Windows XP 版本信息显示为 MCE 2005,Media

Center 组件、PlusOC 组件、Sonic 组件的运行也都一切正常,Windows XP 的基本组件 IE 6、OE 6、Media Player 9 等也没有受到任何影响。总体来看,这个安装源的效果已经基本等同于先安装原版 MCE 2005(只包含 SP2)、再单独安装 SP3 的系统了。

当然,这种变通的处理方法未经过微软官方严格测试,也许在表面一切正常的掩盖下依然存在一些隐患或弊病,笔者不敢保证 100% 地解决了将 SP3 整合至

MCE 2005 安装源引起的版本冲突问题。

不知道 MSDN 将来还会不会发布正式的 MCE 2005 with SP3 安装源镜像了,估计可能性已经不大;或者,假如 Windows XP 将来还会发布 SP4 的话,希望能在 SP4 中修正一下 MCE 文件的版本号,避免版本冲突问题的再次发生。

转自:/blogs/alexis/archive/2009/11/15/