如果你编译了一个VC2008的默认的CRT/MFC的应用程序,如果目标部署电脑上没有安装相应的VC2008的动态库,当运行你的程序的时 个,会出现如下错误信息.
这是因为程序使用了基于VC2008的CRT/MFC的动态库版本.
解决这个问题,有三种方法:
1.使用静态链接库编译(缺点,生成的exe的程序过于庞大)
2.使用vcredist_x86.exe / vcredist_x64.exe 将VC2008的发行版的DLL安装在你的系统上.(缺点,只能支持发行版,调试版程序不能支持)
3.将你的程序依赖的CRT/MFC的动态库与你的程序一起发布(放在与你的发布程序同一目录中)
第一种和第二种就不详细讲如何实现了,只要讲第三种方法如何实现.优其是程序的开发是使用了VC2008 SP1的版本开发的程序.
在你的VC2008的安装目录下有两个目录,
  • C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
  • C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.MFC

只要将这两个目录下的文件一同拷贝到发布程序的同一目录下:

Microsoft.VC90.CRT.manifest 
msvcr90.dll 
msvcp90.dll 
msvcm90.dll 
Microsoft.VC90.MFC.manifest 
mfc90.dll 
mfc90u.dll 
mfcm90.dll 
mfcm90u.dll
这些是这个程序依赖的发行版动态库,同理,如果是调试版的发布程序,也一样把相应的调试动态库拷贝到相应目录.
程序如你意运行起来了!
但是,如果你安装的是VC2008 SP1的版本的时候,问题就来了,你的程序也一样运行不起来了!
原因就是安装了VC2008 SP1的时候,它把"VC/redist"用新的版本文件代替了,问题不大,但是,这个程序的版本是依赖于新的manifest的文件的,当你编译 VC2008-SP1的程序的时候,它同时把RTM-version写入程序的manifest文件中,这个是旧的RTM-version,不与新版本的 VC2008-SP1的"CRT/MFC"manifest版本一致,因此程序运行的时候是拒绝导入这些新的VC2008-SP1的CRT/MFC的运态 库!
解决方法有两种.
  • 方法一:
最简单的,修改Microsoft.VC90.CRT.manifest和Microsoft.VC90.MFC.manifest文件,将新 的版本号改为旧的版本号,如果是依赖其它的Microsoft.VC90.*.manifest的文件,也同样是如此修改!
如果是装了VC2008-SP1后,它的版本号是“9.0.21022.8″
未装VC2008-SP1前的版本号为"9.0.21022.8"
过程如下:
将所依的动态库的及它们的 manifest 文件拷贝到发布应用程序的同一目录下,并修改Microsoft.VC90.*.manifest文件,将
version="9.0.30729.1"
修改为
version="9.0.21022.8"
恭喜你,你的程序运行 起来了!
  • 方法二
    修改你的程序的所依赖的manifest,这样程序会依整于新的manifest.
    过程如下:
    在stdafx.h
    这 个文件中,增加如下宏定义:
#define _BIND_TO_CURRENT_VCLIBS_VERSION 1
程序编译后就会依赖于新的manifest,版 本号为
"9.0.30729.1"
无须再修改manifest文件中的version版本号了.
将所依的动态库的及它们的 manifest 文件拷贝到发布应用程序的同一目录下
恭喜你,程序又运行起来了!
注意:如果你是想要新的MFC-feature-pack的功能,用这种方法是最好的.
注意一点,非常重要,如果已经安装了vcredist_*.exe程序包,注意的是Dll会自动把引用调到系统目录下的WinSxS目录下的, 即不再引用同一目录下的动态库!
如果是编译时使用了(/clr)这个编译选项去支持.net开发,你必须要安装.net framework redistributable包!
不过,在2010,编译的程序会不再需要manifest文件!

部署VC2008的程序相关推荐

  1. MindSpore部署图像分割示例程序

    MindSpore部署图像分割示例程序 本端侧图像分割Android示例程序使用Java实现,Java层主要通过Android Camera 2 API实现摄像头获取图像帧,进行相应的图像处理,之后调 ...

  2. 《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序

    本节书摘来自异步社区<ASP.NET 开发从入门到精通>一书中的第2章,第2.3节,著 张明星 ,责任编辑 张 涛, 更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  3. (二)Amazon Lightsail 部署LAMP应用程序之部署单片LAMP应用程序

    部署单片LAMP应用程序 简介:通过复制应用程序代码并提供链接PHP前端和本地MySQL数据库的参数,将LAMP对战应用程序部署到先前启动的Lightsail实例中.完成后,Apache/PHP前端和 ...

  4. 开发笔记7 | 部署 Go 应用程序到阿里云 ECS

    前言 在上一篇文章中,我们介绍了<部署 Java 应用程序到阿里云 ECS>,在本文中,我们来介绍 部署 Go 应用程序到阿里云 ECS. 本地开发 无论是编写云端运行的,还是编写本地运行 ...

  5. 如何打包和部署air应用程序

    来源:http://www.solosky.net/2010/12/package-and-deploy-air-application.html 昨天折腾了一个晚上,终于把我写的美女时钟桌面 的ai ...

  6. CentOS单机安装k8s并部署.NET 6程序

    学习云原生,k8s 是一个基础,为了做一些实验,单机部署是最方便的,下面将介绍在 CentOS 中单机安装 k8s ,并将一个 .NET 6 的程序发布到 k8s 中. 环境 宿主机:Mac 10.1 ...

  7. nginx部署与小程序配置

    nginx部署与小程序配置说明 1.安装nginx $ sudo apt-get update $ sudo apt-get install nginx 2.配置https: 查看: https:// ...

  8. 如果在docker中部署tomcat,并且部署java应用程序

    2019独角兽企业重金招聘Python工程师标准>>> 如果在docker中部署tomcat,并且部署java应用程序 博客分类: docker 1.先说如何在docker中部署to ...

  9. 怎么抓python程序的包_如何在AWS上部署python应用程序

    如何在AWS上部署python应用程序,学姐呕心沥血亲自总结,亲测有效,比网上看网上大把大把的文档要快得多! 作者:蕾学姐 亚马逊云计算服务(Amazon Web Services,缩写为AWS),由 ...

  10. docker 发布tomcat项目_在docker中部署tomcat并且部署java应用程序的步骤详解

    1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创 ...

最新文章

  1. 进阶学习(3.13) Proxy Pattern 代理模式
  2. ZAB协议选主过程详解
  3. 国内创业活动平台,创业赛事报名网站
  4. 分享下多年积累的对JAVA程序员成长之路的总结
  5. Python机器学习:KNN算法04f分类准确度
  6. Extension Method - c#3.0
  7. GitHub 又又又挂了?
  8. PCD Lesson3:PCD文件的读取
  9. EditPlus中配置JSON格式化功能
  10. python蒙特卡洛模拟return_蒙特卡罗方法入门
  11. 【深度学习之美】山重水复疑无路,最快下降问梯度(入门系列之七)
  12. tp5微信公众号开发(1) 申请公众号配置token验证
  13. 【DDD】领域驱动设计实践 —— Application层实现
  14. 微信小程序—写字板、手写签名(高仿毛笔效果)让汉字引领世界
  15. 期货止损篇2:ATR止损,高手都在悄悄用的止损利器
  16. 在线上教育机构学画画效果怎么样 大鹏教育学员晒出国画作品
  17. 16 16点阵c语言程序,用C语言编程16点阵字库
  18. CentOS----本地YUM源配置
  19. [转载]32位系统与64位系统的区别(整合三篇写的比较好的文章)
  20. 主流的Web服务器有哪些

热门文章

  1. FPGA学习——Vivado2017.4安装教程
  2. 高分屏笔记本,如何处理程序提示“文本缩放比率要求为100%”
  3. 你想要的宏基因组-微生物组知识全在这(2022.4)
  4. Git可视化下载及团队协作及diff工具
  5. window64位版本的secoclient工具下载(secoclient-win-64-7.0.2.26.exe)
  6. 计算机应用基础146jpg,计算机应用基础——复习题2.pdf
  7. 数字图像处理 色差计算
  8. 阿里云服务器上搭建cs远控
  9. 作品展作品延伸——代码
  10. 历年计算机考研复试_重点面试题