VS2005 应用配置不正确 清单(manifest) R6034

本文介绍了解决VS2005编译程序在XP、Win2003系统中部署时出现的应用程序配置不正确等问题的方法。通过在Visual Studio中嵌入清单文件或将所需DLL和清单文件一并发布来解决。
现象
用VS2005编译的程序部署到某些系统(XP、Win2003)中常会遇到 #1“ 应用程序配置不正确,程序无法启动,重新安装应用程序可能会修复问题。”或者 #2“没有找到MSVCR80.DLL,因此这个应用程序未能启动。重新安装应用程序可能会修复问题。”或者当复制MSVCR80.DLL到应用目录后提示 #3R6034”。

原因
Visual C++ Libraries as Shared Side-by-Side Assemblies
(大意如下)
vs2005在XP、2003开发模式支持shared SxS,用到ATL, MFC, Standard C++, CRT库的应用需要邦定(清单)manifest才能正确加载相应DLL。如果应用程序在这些系统下未邦定清单,即使将这些库放到应用本地也不会正确加载( #3)。 在Windows 98/2000下,由于不支持该模式,加载时采用默认的方式加载DLL,也就不会出现上述问题。

解决

1.应用程序嵌入清单文件
    Visual Studio 中的清单生成(大意如下)
    1)“项目属性”对话中,在“配置属性”选项卡上,单击“链接器”,再单击“清单文件”,然后单击“生成清单 ”。
    2)“项目属性”对话中,打开“清单工具”节点,然后选择“输入和输出”的“嵌入清单”选择“是”。
2.当应用程序依赖于ATL、MFC、CRT等时,将相应DLL连同清单文件一同打包发布。
    将下面目录下的相应文件一同打包发布
    Release:  D:\Program Files\Microsoft Visual Studio 8\VC\redist\x86
    Debug:    D:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86
    如将MFC是“D:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.MFC”目录下的Microsoft.VC80.MFC.manifest和mfc80.dll

PS:点击相关链接获取详细信息。如有误导及自误,欢迎指正。
进一步参考:命令行上的清单生成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值