http://blog.sina.com.cn/s/blog_8378e25b010142w7.html

vc2008不安装vcredist发布程序

(2012-05-18 15:29:37)

转载▼

标签:

杂谈

分类: VC
以前一直用vc6,不是喜欢他什么,最重要的一点是用它发布程序方便,搬到别处的电脑几乎不会出现什么问题。而vc9发布程序,很容易出现程序配置错误等问题而无法运行,导致的原因是与环境dll有关,找了很久终于找到很详细的解答,以下是地址
http://blog.csdn.net/xiaojianpitt/archive/2009/06/15/4269641.aspx

vc2008程序发布指南2008-05-03 17:46vc2008开发的程序的发布方式可以有5种方式:

1. 采用静态链接到crt和MFC. 只要你拥有组成程序的所有源代码,你就可以采用这种方式,
这种方式除了程序变大一点,好处多多:
1) 不必重新发布vc2008基础库vcredist_x86.exe(安装到WinSxS).
2) 不必产生,嵌入manifest.
3) 也不把vc2008基础库放在程序所在目录.

2. exe(嵌入manifest) + vcredist_x86.exe

确保程序正确产生并嵌入manifest文件,然后把程序和vcredist_x86.exe一起发布.用户先安装
vcredist_x86.exe(安装到WinSxS),然后程序就能正常运行了.

3. exe(嵌入manifest) + 用到的基础库文件放到程序目录(包括库文件本身的manifest文件)

确保程序正确产生并嵌入manifest文件,然后把程序用到的vc2008基础库相关文件复制到程序
所在目录,这种方式适用于用户没有安装过vcredist_x86.exe,一旦用户安装过vcredist_x86.exe,
若WinSxS中的相关文件遭到破坏,那么即使在程序目录放上所有用到的vc2008基础库,程序也跑
不起来;若WinSxS中的相关文件正常,那么程序目录下的相关文件就是多余的了,删掉它们程序也能
正常运行.

4. exe(自行编写manifest) + vcredist_x86.exe

5. exe(自行编写manifest) + 用到的基础库文件放到程序目录(包括库文件本身的manifest文件)

个人偏向第五的方法

在vc2008中,工程属性可以设定manifest是不是嵌入到文件,经过测试,在没有安装vcredist的xp系统上,将基础库文件放到程序目录就行了,当然要包括库文件的manifest。而不嵌入manifest的好处就是第三点说到的。因为程序会优先检测winsxs的,如果里面存在却是错误的,导致程序跑不起来,那么如果不将manifest内嵌,就一定能保障程序能找到正确的配置文件和相关的库文件。

举个例子:
一个程序只用CreateWindow来创建一个窗口和一个按钮
在项目属性->清单工具->输入输出  中将清单嵌入设为否,那样就会帮你生成manifest文件而不会将它嵌入

然后,在链接器->清单文件->附加清单依赖项 中加入
type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='X86' publicKeyToken='6595b64144ccf1df' language='*'

这样,通用控件就能使用系统的主题样式。

编译程序后,除了程序文件xxx.exe和xxx.exe.manifest外,到VC\redist中找到相应的dll和manifest
这个程序就需要msvcp90d.dll msvcr90d.dll msvcm90d.dll 和 Microsoft.VC90.DebugCRT.manifest
因为这是调试版本,所以基础库都是msvc...d.dll
Release版本就找对应的版本和manifest就可以了。

注意,如果程序跑不起来,看看程序的manifest文件中指定的基础库版本和复制过来的dll文件版本是否一致。

分享: 分享到新浪Qing

0

喜欢

阅读(389)┊ 评论 (0)┊ 收藏(0) ┊转载(0) ┊ 喜欢 ┊打印┊举报
已投稿到:
排行榜 圈子

转载列表:

转载

转载是分享博文的一种常用方式...

前一篇:VC++ 中CComboBox的默认值怎么设置
后一篇:串口测试工具使用说明(Portmon)

评论 重要提示:警惕虚假中奖信息 |
[发评论]

  • 做第一个评论者吧! 抢沙发>>
发评论 |

登录名: 密码: 找回密码 注册 记住登录状态

昵   称:

分享到微博    评论并转载此博文

验证码: 请点击后输入验证码 收听验证码

匿名评论

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

< 前一篇VC++ 中CComboBox的默认值怎么设置
后一篇 >串口测试工具使用说明(Portmon)

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2013 SINA Corporation, All Rights Reserved

新浪公司 版权所有

X
选择其他平台 >>

分享到

  • 含“”的博文
  • 含“”的博主
  • 含“”的音乐
  • 含“”的视频
最近喜欢了的博主:
加载中…
  • Qing
  • 博客
  • 转载原文
  • 采编
  • 长微博
为了您的账号安全,请绑定邮箱
分享到新浪Qing
分享到新浪微博
幻灯播放
分享到X
腾讯微博
一键通
新浪微博

QQ空间
搜狐微博
新华微博
手机
网易微博
开心网
豆瓣网

手机快传
人人网
天涯
凤凰微博
朋友网
微信
QQ好友

更多平台... (133)
bShare

vc2008不安装vcredist发布程序相关推荐

  1. ios 应用程序证书安装以及发布

    原文摘自:http://www.cocoachina.com/bbs/read.php?tid-7923-keyword-%C8%E7%BA%CE%C1%AA%BB%FA%B5%F7%CA%D4.ht ...

  2. 超级总结:vs2008/2005 sp1 C++ 发布程序 .

    最近在新装的Win7上 编译/ 运行自己的 camera_work_simultaneously.exe 程序时,发现release 编译/运行 没有问题,但是Debug版本编译通过,run时报错:& ...

  3. 白月黑羽教python excel_发布程序

    正式发布程序 前面,我们开发好了一个HTTP协议测试程序,但是这个程序是Python程序,运行它需要Python解释器. 如果我们要发布程序给客户使用,当然不能要求别人去安装Python解释器,并且敲 ...

  4. IIS安装与MVC程序部署

    最近在做访客系统,虽然说不是什么多大的项目,但麻雀虽小五脏俱全,使用EF Code First+Mysql+Frozenui响应式布局,感觉通过这个项目学到好多东西,Mysql的使用.EF映射Mysq ...

  5. linux上开发应用程序_如何在Linux上安装软件应用程序

    linux上开发应用程序 如何在Linux上安装应用程序? 与许多操作系统一样,该问题不仅有一个答案. 应用程序可以来自许多来源-几乎无法计数-每个开发团队都可以以自己认为最佳的方式交付软件. 知道如 ...

  6. 安装mysql程序运行出错_如何解决mysql安装后.net程序运行出错的问题

    如何解决mysql安装后.net程序运行出错的问题 发布时间:2020-09-28 17:43:58 来源:亿速云 阅读:93 作者:小新 小编给大家分享一下如何解决mysql安装后.net程序运行出 ...

  7. 在Chrome中使用非应用商店安装的扩展程序

    一.说明: 最近将Chrome更新到69版本,结果发现"百度网盘助手"这个扩展程序又被禁用了(这个扩展程序没在Chrome的应用商店中发布,而Chrome正常不允许应用商店以外安装 ...

  8. linux安装——管理应用程序

    个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能. 座右铭:海不辞水,故能成其大:山不辞石,故能成其高. 个人主页:小李会科技的主页 目录 前言: 1. ...

  9. Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)

    若该文为原创文章,未经允许不得转载 原博主博客地址:长沙红胖子Qt的博客_CSDN博客-Qt开发,图形图像处理,OpenCV图像处理领域博主 原博主博客导航:红胖子网络科技博文大全:开发技术集合(包含 ...

  10. QT发布程序打开数据库失败

    QT发布程序后,打开数据库失败,提示"QSqlDatabase: QMYSQL driver not loaded",可如下操作: 1.将qt生成的test.exe拷贝到一个空文件 ...

最新文章

  1. C语言基础知识【数据类型】
  2. 服务器将office转pdf文件,Windows服务-Office转PDF文件
  3. python手绘效果图_2020高校邦《马克笔手绘效果图》判断题答案2020高校邦《网络数据采集与Python爬虫(山东大学定制班级)》见面课测试答案...
  4. java jersey get_java – Jersey GET请求可以返回一个多态实体吗​​?
  5. C#语言-04.OOP基础
  6. 计算机社团招新个人简历,大学社团招新面试自我介绍五篇
  7. 算法左神左程云耗尽5年心血分享程序员代码面试指南第2版文档
  8. 今日说“法”:FPGA芯片如何选型?
  9. css入门1 css简介
  10. ELK集群部署报错(master not discovered yet, this node has not previously joined a bootstrapped )
  11. [BZOJ1779][Usaco2010 Hol]Cowwar 奶牛战争(最大流)
  12. php 去除多余空行,php如何去除空行
  13. rational rose 2007安装破解全过程
  14. 做明日达超市,美团电商这次能成吗?
  15. python期货基本面分析_Python股票期货交易利器,砖型图详细绘制教程!
  16. 计算机里找不到用户文件夹,电脑里面的文件夹不见了,怎么找回
  17. excel 分组排序,取前5
  18. 使用POI和EasyExcel实现Excel导入和导出功能
  19. idea2022报错: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
  20. C#,图像二值化(13)——全局阈值的双峰平均值算法(Bimodal Thresholding)与源程序

热门文章

  1. 人脸及脸部关键点检测控件
  2. 安装R和Rstudio win10
  3. CSS选取子标签元素:nth-child、first-child、last-child
  4. “小而美”背后的大道理:WebRAY崛起的深层次原因
  5. 惠普打印机HP Laser Jet M233sdw硒鼓芯片拆卸
  6. 1024 科学计数法(C语言)测试点4详解
  7. 充值抖币显示苹果服务器异常,抖音充值抖币怎么充值不了
  8. mysql修改指定记录_sql操作之修改记录值
  9. 高德地图(前端入门学习)
  10. Object-C 介绍