分享

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

 gljin_cn 2014-12-25
现象
用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:点击相关链接获取详细信息。如有误导及自误,欢迎指正。
进一步参考:命令行上的清单生成

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多