1. 主页 > vs安装问题 > VS2005安装问题 >

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

现象
用VS2005编译的程序部署到某些系统(XP、Win2003)中常会遇到#1“ 应用程序配置不正确,程序无法启动,重新安装应用程序可能会修复问题。”或者#2“没有找到MSVCR80.DLL,因此这个应用程序未能启动。重新安装应用程序可能会修复问题。”或者当复制MSVCR80.DLL到应用目录后提示#3“R6034”。

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

本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2005anzhuangwenti/2020/0721/716.html

联系我们

在线咨询:点击这里给我发消息

微信号:PREEE8

工作日:9:30-18:30,节假日休息