vc2008不安装vcredist发布程序
http://blog.sina.com.cn/s/blog_8378e25b010142w7.html
vc2008不安装vcredist发布程序
(2012-05-18 15:29:37)
标签:
杂谈 |
分类: VC |
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文件版本是否一致。
0
喜欢
已投稿到: |
排行榜 圈子
|
---|
转载列表:
转载是分享博文的一种常用方式...
- 做第一个评论者吧! 抢沙发>>
登录名: 密码: 找回密码 注册 记住登录状态
昵 称:
分享到微博 评论并转载此博文
验证码: 请点击后输入验证码 收听验证码
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。
新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正
新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑
Copyright © 1996 - 2013 SINA Corporation, All Rights Reserved
新浪公司 版权所有
分享到
- 含“”的博文
- 含“”的博主
- 含“”的音乐
- 含“”的视频
- Qing
- 博客
- 转载原文
- 采编
- 长微博
vc2008不安装vcredist发布程序相关推荐
- ios 应用程序证书安装以及发布
原文摘自:http://www.cocoachina.com/bbs/read.php?tid-7923-keyword-%C8%E7%BA%CE%C1%AA%BB%FA%B5%F7%CA%D4.ht ...
- 超级总结:vs2008/2005 sp1 C++ 发布程序 .
最近在新装的Win7上 编译/ 运行自己的 camera_work_simultaneously.exe 程序时,发现release 编译/运行 没有问题,但是Debug版本编译通过,run时报错:& ...
- 白月黑羽教python excel_发布程序
正式发布程序 前面,我们开发好了一个HTTP协议测试程序,但是这个程序是Python程序,运行它需要Python解释器. 如果我们要发布程序给客户使用,当然不能要求别人去安装Python解释器,并且敲 ...
- IIS安装与MVC程序部署
最近在做访客系统,虽然说不是什么多大的项目,但麻雀虽小五脏俱全,使用EF Code First+Mysql+Frozenui响应式布局,感觉通过这个项目学到好多东西,Mysql的使用.EF映射Mysq ...
- linux上开发应用程序_如何在Linux上安装软件应用程序
linux上开发应用程序 如何在Linux上安装应用程序? 与许多操作系统一样,该问题不仅有一个答案. 应用程序可以来自许多来源-几乎无法计数-每个开发团队都可以以自己认为最佳的方式交付软件. 知道如 ...
- 安装mysql程序运行出错_如何解决mysql安装后.net程序运行出错的问题
如何解决mysql安装后.net程序运行出错的问题 发布时间:2020-09-28 17:43:58 来源:亿速云 阅读:93 作者:小新 小编给大家分享一下如何解决mysql安装后.net程序运行出 ...
- 在Chrome中使用非应用商店安装的扩展程序
一.说明: 最近将Chrome更新到69版本,结果发现"百度网盘助手"这个扩展程序又被禁用了(这个扩展程序没在Chrome的应用商店中发布,而Chrome正常不允许应用商店以外安装 ...
- linux安装——管理应用程序
个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能. 座右铭:海不辞水,故能成其大:山不辞石,故能成其高. 个人主页:小李会科技的主页 目录 前言: 1. ...
- Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)
若该文为原创文章,未经允许不得转载 原博主博客地址:长沙红胖子Qt的博客_CSDN博客-Qt开发,图形图像处理,OpenCV图像处理领域博主 原博主博客导航:红胖子网络科技博文大全:开发技术集合(包含 ...
- QT发布程序打开数据库失败
QT发布程序后,打开数据库失败,提示"QSqlDatabase: QMYSQL driver not loaded",可如下操作: 1.将qt生成的test.exe拷贝到一个空文件 ...
最新文章
- C语言基础知识【数据类型】
- 服务器将office转pdf文件,Windows服务-Office转PDF文件
- python手绘效果图_2020高校邦《马克笔手绘效果图》判断题答案2020高校邦《网络数据采集与Python爬虫(山东大学定制班级)》见面课测试答案...
- java jersey get_java – Jersey GET请求可以返回一个多态实体吗​​?
- C#语言-04.OOP基础
- 计算机社团招新个人简历,大学社团招新面试自我介绍五篇
- 算法左神左程云耗尽5年心血分享程序员代码面试指南第2版文档
- 今日说“法”:FPGA芯片如何选型?
- css入门1 css简介
- ELK集群部署报错(master not discovered yet, this node has not previously joined a bootstrapped )
- [BZOJ1779][Usaco2010 Hol]Cowwar 奶牛战争(最大流)
- php 去除多余空行,php如何去除空行
- rational rose 2007安装破解全过程
- 做明日达超市,美团电商这次能成吗?
- python期货基本面分析_Python股票期货交易利器,砖型图详细绘制教程!
- 计算机里找不到用户文件夹,电脑里面的文件夹不见了,怎么找回
- excel 分组排序,取前5
- 使用POI和EasyExcel实现Excel导入和导出功能
- idea2022报错: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
- C#,图像二值化(13)——全局阈值的双峰平均值算法(Bimodal Thresholding)与源程序