vc2008程序发布指南
2013-12-19 17:47
357 查看
vc2008程序发布指南
2008-05-03 17:46
2008-05-03 17:46
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,供检查内容是否一样 |
相关文章推荐
- [转]VC2008程序发布指南
- vc2008程序发布指南
- vc2008程序发布指南
- VC 2008 发布程序部署问题
- VC2008发布程序时指定库版本 || 详解“由于应用程序配置不正确,应用程序未能启动” || vc2008 发布你的软件
- VC2008发布程序时指定库版本
- VC2008发布程序时指定库版本
- 如何在不安装VC2008发布包的情况下,发布VC2008生成的程序
- 遇到过的问题,备忘, VC2008发布程序时指定库版本[转载]
- matalb7与VC2008混合编程DLL方法(四)脱离matlab和VC环境的运行和程序发布
- 第十三节 VMware View 6.0 菜鸟入门 发布2008 R2 RDS 桌面和程序
- 安装vs2008 sp1后程序出错--VC2008中 “Debug\Ckeshe.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
- Visual Studio 2008/.NET Framework 3.5 WinForm窗体运用程序发布(部署)
- MVC5程序发布在Server 2008 IIS 上,出现404.13错误 的解决方法
- vs2005 vc++ 程序发布
- vc++ 2005 发布程序
- VC下发布的Release版程序崩溃后的异常捕捉与查找
- VC下发布的Release版程序崩溃后的异常捕捉与查找
- VC2008程序在别人电脑上运行
- “应用程序配置不正确,程序无法启动” 解决办法(vc2008 sp1)