Tuesday, March 13, 2007

VS2005 编译后在其他机器中不能正常载入msvcp80.dll

FAT32清单文件的问题早就提过,就不说了。
vcredist 发布包也早装了,也不管用。
曾经的问题再度困扰着我。

在痛苦了一天之后,终于明白了,因为我曾安装了VS2005 SP1 !!!
该死的微软,在安装vs2005 sp1后,dll的版本号也从8.0.50727.42变成了8.0.50727.762,在WinSxS目录下的位置自然也变化了。而竟然,vcredist发布包只提供到.42的版本,所以sp1编译出来的东西自然就找不到dll了。
该死的微软是不是忘记更新这个vc发布包了?我们难道要傻等么?
其实可以这样:
  1. 将Windows\WinSxS下对应的目录(如x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700)都copy到目标机器的WinSxS下
  2. 将Windows\WinSxS\Manifests下对应的.manifest和.cat文件copy到目标机器的WinSxS\Manifests下

无论如何,VS2005是令我最头痛的一个vs版本

No comments: