正确的VC2008运行库发行方法

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:13   1405   0

大部分软件在打包时会将vc2008运行库安装包打包进去,安装时调用,这样就解决了dll依赖问题

然而好多系统本身存在一些莫名其妙的问题,vc2008运行库安装包是无法正确安装的

这就需要免安装vc2008运行库,然后能将exe执行起来的方案

/MT编译固然是最省事的,但是有些库恰恰是那种闭源的bin,没有源代码,人家就是依赖vc2008

这时候怎么办呢?

首先有两种场景:

1.支持Win2000,最简单,将msvcr90.dll msvcX90.dll等文件和exe放在一起就好了

2.XP以上系统使用了sxs解决dll冲突问题,因此需要创建一个Microsoft.VC90.CRT的目录和exe放在一起,这个目录里面放 msvcX90.dll,然后再放一个清单文件Microsoft.VC90.CRT.manifest内容如下

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <noInheritable/>
  <assemblyIdentity
    type="win32"
    name="Microsoft.VC90.CRT"
    version="9.0.21022.8"
    processorArchitecture="x86"
    publicKeyToken="1fc8b3b9a1e18e3b"
  />
  <file name="msvcr90.dll" /> <file name="msvcp90.dll" /> <file name="msvcm90.dll" />
</assembly>

注意清单文件中的那个版本号9.0.21022.8必须要和你的exe或dll所依赖的版本号一致,否则exe是无法加载的。

方案学习自winamp

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP