vc2008程序发布指南
vc2008开发的程序的发布方式可以有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文件)
另外,C:/Program Files/Common Files/Merge Modules 目录下有相应库的集成模块可以直接集成到安装包中去.
附录:
A. 自行编写的manifest文件命名: abc.exe 对应abc.exe.manifest
B. 与程序对应的manifest的格式:
?xml version=1.0 encoding=UTF-8 standalone=yes?
assembly xmlns=urn:schemas-microsoft-com:asm.v1 manifestVersion=1.0
trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"
security
requestedPrivileges
requestedExecutionLevel level=asInvoker uiAccess=false /
/requestedPrivileges
/security
/trustInfo
dependency // VC9 的CRT, 基本上所有用vc2008的程序都需要下面一段
dependentAssembly
assemblyIdentity type=win32 name=Microsoft.VC90.CRT version=9.0.21022.8 processorArchitecture=x86 publicKeyToken=1fc8b3b9a1e18e3b /
/dependentAssembly
/dependency
//用到 VC9的MFC库,需要加下面一段
dependency
dependentAssembly
assemblyIdentity type=win32 name=Microsoft.VC90.MFC version=9.0.21022.8 processorArchitecture=x86 publicKeyToken=1fc8b3b9a1e18e3b /
/dependentAssembly
/dependency
dependency //想使用windows xp 的6.0版本的通用控件,加需要下面一段
dependentAssembly
assemblyIdentity type=win32 name=Microsoft.Windows.Common-Controls version=6.0.0.0 processorArchitecture=x86 publicKeyToken=6595b64144ccf1df language=* /
/dependentAssembly
/dependency
/assembly
C. 如何确保程序正确产生并嵌入manifest文件?
- xxxproject properties Configuration Properties Generate Manifest: 确保为Yes
这个与Configuration Properties Linker Manifest File Generate Manifest都是指同一个设置.
- Project Tool Build Order Manifest Tool确保打勾.
release版本可以看到有: xxx.exe.intermediate.manifest 生成, 它是由linker生成的,由manifest tool嵌入程序的.
debug版本manifest tool把xxx.exe.intermediate.manifest嵌入程序后还会输出一个xxx.exe.embed.manifest,供检查内容是否一样
有时候我们会把一些特殊字体打包到软件,因为如果找不到我们的字体会变为默认,现在很多字体图标我们用得好,有时候我们的应用会用很漂亮的字体,需要我们自己打包,因为用户一般是没有字体。
相关文章
- QT(3)第一个QT程序
- 制作绿化版Python解锁Python桌面程序的高级打包方式
- 【程序猿分享】Cover的美。– background-size:cover
- 微信小程序 - async/await
- 《.NET 进阶指南》读书笔记1------NET程序集与普通EXE文件的区别
- 微信小程序轮子 - 外卖点餐左右联动界面完整源码(类似美团饿了么点餐界面)
- MFC子线程访问主线程对话框程序的控件对象
- 微信小程序根据状态换图
- 微信小程序通过api接口将json数据展现到小程序示例
- python调用exe程序
- 自用 微信小程序跳小程序
- js 小程序获取本周七天
- 《C语言编程初学者指南》一2.10 本章程序:Shop Profit
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南1:限制敏感数据的生命周期
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南2:不要在客户端存储未经加密的敏感数据
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南5:防止任意文件上传
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南7:防止代码注入
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南8:防止XPath注入
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南12:不要使用不安全的弱加密算法
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南13:使用散列函数存储密码
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南14:确保SecureRandom正确地选择随机数种子
- 《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.9 总结
- 《Python编程初学者指南》——1.6 回到Game Over程序
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——1.6 导入SMO程序集
- 微信小程序~下拉刷新真机测试不弹回的处理办法
- GammaRay观察Qt程序的运行状况
- 《OpenGL ES应用开发实践指南:Android卷》—— 3.3 把着色器一起链接进OpenGL的程序
- 《Arduino开发实战指南:机器人卷》一3.6 编程原理与示例程序
- 《ANTLR 4权威指南》——1.2 运行ANTLR并测试识别程序
- Windows 7系统垃圾清理自写程序
- EXT-JS 6演示样例程序-Login演示样例程序
- 程序猿增加新团队的那些坑
- 记VS2008初始化Microsoft Visual Sourcesafe源码管理提供程序时失败
- 在微信小程序上做一个「博客园年度总结」
- ClickOnce部署WinForm程序技巧总结