Windows XP 上运行 Angry Birds/愤怒的小鸟

游戏发布后随即在自己用的 Win7 本本装上了,可以正常运行,但回到家里想给爸妈用的 XP 本本也装一个,却总是启动失败,提示说“由于应用程序配置不正确,应用程序未能启动…”(对应的英文是:”This application has failed to start because application configuration is incorrect. reinstalling the app may fix this problem.”,可用于搜索英文网页),当时更新了 DirectX 运行库,也安装了最新的 VC9 运行库,却仍旧不行,只好先放下。

然后今天继续研究,用 Dependency Walker 检查过执行程序,似乎说是找不到 MSVCR90.DLL(另外报的 WER.DLL 等两个应该属于误报),于是很疯狂地先后安装了 6 个版本的 VC 运行库(四个是 VC9 的,另外 VC8 和 VC10 的也各装了一个),OMG,居然还是不行。

突然想到可以看一下执行文件内嵌的 manifest 信息到底是啥,于是用 exeScope 打开,才发现了这么一行(也是仅有的一行关于 VC 运行库的内容):

assemblyIdentity type=”win32″ name=”Microsoft.VC80.CRT” version=”8.0.50727.4053″ processorArchitecture=”x86″ publicKeyToken=”1fc8b3b9a1e18e3b”

再看一下那台机器上的 WinSxS 目录,正好是没有这个版本的 VC8 运行库(我之前安装的版本稍旧了一点,运气真不好),再然后就简单了,找到对应的下载地址(VC8 SP1 后的 ATL 安全更新),安装好后,游戏就能正常启动啦!

回顾&总结一下吧:

1. VC8 运行库,必须安装上面说的版本,如果像我之前那样只安装了旧版本的,应该会通过系统更新升级到最新版本,只是时间不好说
2. VC9 运行库,必须安装,但应该没有版本要求,因为只是 AppUpWrapper.dll 需要,而且其 manifest 中指定的还是最早的 21022.8 版本(参照这篇文章
3. VC10 运行库,应该不需要装,安装目录中自带(网上也有说要把 msvcr100.dll 复制到 system32 目录下的,不清楚是否必须)

关于游戏本身,之前已经在果妈的 Desire 上玩过十来关,不是太感冒,然后 PC 版出来后又多玩了大概一二十关,还是无爱。。。

题外:
1. 据说 VC10 中已经取消了 manifest 相关的设定,不知道具体是怎么回事,反正 VC8/VC9 在这方面已经让我吃过好几次苦头了:(
2. 如果用搜索引擎寻找 VC 运行库的下载,搜索结果中前几位的都不是最新的版本,Google/Bing 都一样,我用的关键字是 vcredist+2005。

This entry was posted in 游戏 and tagged , . Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s