原帖来自:http://www.zzzj.com/html/20080829/64942.html

这个问题最终的解决方法是修改manifest文件,首先需要关闭MSVC project中的embed manifest的选项,然后修改manifest文件。

修改前的manifest文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assemblyxmlns="urn:schemas-microsoft-com:asm.v1"manifestVersion="1.0"><dependency><dependentAssembly><assemblyIdentitytype="win32"name="Microsoft.VC80.CRT"version="8.0.50608.0"processorArchitecture="x86"publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></dependentAssembly></dependency><dependency><dependentAssembly><assemblyIdentitytype="win32"name="Microsoft.VC80.MFC"version="8.0.50608.0"processorArchitecture="x86"publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></dependentAssembly></dependency><dependency><dependentAssembly><assemblyIdentitytype="win32"name="Microsoft.Windows.Common-Controls"version="6.0.0.0"processorArchitecture="x86"publicKeyToken="6595b64144ccf1df"language="*"></assemblyIdentity></dependentAssembly></dependency><dependency><dependentAssembly><assemblyIdentitytype="win32"name="Microsoft.VC80.CRT"version="8.0.50727.6195"processorArchitecture="x86"publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></dependentAssembly></dependency>
</assembly>

修改后的manifest文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assemblyxmlns="urn:schemas-microsoft-com:asm.v1"manifestVersion="1.0"><dependency><dependentAssembly><assemblyIdentitytype="win32"name="Microsoft.VC80.CRT"version="8.0.50608.0"processorArchitecture="x86"publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></dependentAssembly></dependency><dependency><dependentAssembly><assemblyIdentitytype="win32"name="Microsoft.VC80.MFC"version="8.0.50608.0"processorArchitecture="x86"publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></dependentAssembly></dependency><dependency><dependentAssembly><assemblyIdentitytype="win32"name="Microsoft.Windows.Common-Controls"version="6.0.0.0"processorArchitecture="x86"publicKeyToken="6595b64144ccf1df"language="*"></assemblyIdentity></dependentAssembly></dependency>
</assembly>

把最后的8.0.50727.6195版本的依赖删掉了。经实测:修改后可以在winxp和windows 8.1上运行。估计根本原因是因为这个程序引用到一些三方的DLL,而这些DLL的编译版本跟我这边所用的2005不一样(可能是很老的6.0)。不过就像原帖所说的,已经无法验证了。

附上原帖内容:

在网上找出了这些方法:

方法一:
在类似C:\Program Files\Microsoft Visual Studio 8\VC\redi
st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件:

msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest

把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以正确运行了。

其他release版、MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!

方法二:
修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。

方法三:

工程-》属性-》配置属性-》常规-》MFC的使用,选择“在静态库中使用mfc”
这样生成的exe文件应该就可以在其他机器上跑了。

方法四:

你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装

在大部分机上都可以运行了,唯独在我的测试机上还是报应用程序配置错误。刚开始怀疑是还缺少dll,在能跑的机上把windows/system32目录下所有的msvc*.dll都复制到这台机的运行目录,还是不行!极度郁闷※×…!后来实在没辙了,就在VC环境中打开了EXE来查看它内嵌的manifest资源,无奈了看了一会,带着心中对manifest的咒骂,突然发现这个manifest带了两个版本CRT的依赖:

<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762'。。。

<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0''。。。

再打开Microsoft.VC80.CRT.manifest一看,是这样:

<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762"

就是说,我们EXE的Manifest里多了一个版本依赖,那就把后面那个依赖删除试试。于是就把工程设置的生成manifest的选项去掉,手工改了一下manifest放到程序目录下,发现果然可以运行了!

还有个问题没有明白,就是VC为什么在自动生成的manifest里带了两个依赖呢,上网再查了一下,发现在msdnonline上说'8.0.50608.0'这个版本是在XP下用的,'8.0.50727.762'这个版本是在Vista下用的(http://msdn.microsoft.com/en-us/library/ms235342(VS.80).aspx),可是我用的是'8.0.50727.762'在XP下运行的好好的!想不通是它错了还是别的原因。后来在CRT的源码里面搜索'8.0.50727.762',找到了~'8.0.50608.0'也在那里。

#if defined _USE_RTM_VERSION

#define _CRT_ASSEMBLY_VERSION “8.0.50608.0”

#else

#define _CRT_ASSEMBLY_VERSION “8.0.50727.762”

#endif

显然默认的版本是“8.0.50727.762”,除非定义了_USE_RTM_VERSION!那为什么我们的工程会生成两个版本的依赖呢,明明这个地方是二选一的。一开始怀疑是工程设置引起的,我就把我们的工程拷出来,把里面的文件删掉,再复制一些向导生成的文件进来,编译一看,manifest里只有一个'8.0.50727.762',说明工程设置没有问题!最后我怀疑是工程链接的那些库的问题,因为有些库是用VC6或者VC2003编译的,但是有些库没有代码,编不了,没法尝试了。

转载于:https://www.cnblogs.com/ezhang/p/3888183.html

Visual Studio 2005 编译的版本无法启动,出现应用程序配置不正确的错误相关推荐

  1. Visual Studio 2005中编译调试新功能

    在日常的编程中,程序员经常离不开的工作之一,就是调试.当写好一段代码或程序后,在运行后总会出现这样那样的问题,比如各样的错误,程序员就必须进行调试,将这些错误排除.在最新出炉的Visual Studi ...

  2. Visual Studio 2005 中的新增安全性功能

    Visual Studio 2005 中的新增安全性功能 Visual Studio 2005 中的新增安全性功能 发布日期: 11/18/2005 | 更新日期: 11/18/2005 Brian ...

  3. Visual Studio 2005 下载地址

    visual studio 2005 下载地址大全 .net2003 & visual studio 2005 下载地址大全 Microsoft Visual Studio 2005 Prof ...

  4. 卸载 Visual Studio 2005

    如何:卸载 Visual Studio 2005 卸载 Visual Studio 及其所有组件的过程共分三个步骤.为了避免出现意外行为,必须按下面列出的顺序 执行这些步骤: 步骤 1:卸载随 Vis ...

  5. Visual Studio 2005 TFVC周年庆

    [已发表于<程序员>2006年第12期"Visual Studio 2005周年庆"特刊] 正是去年的这个时候,微软可谓重磅出击,一口气发布了多款重量级产品,其中最能加 ...

  6. 应用程序配置不正确,程序无法启动的问题小结

    重装系统之后,开发环境进行重新配置了.因为之前那个环境用了大概有半年多了,所以只是基本的配置作了记录,其他细节的东西并没有以文字方式记录下来.这次运行起来有了一些未遇到过的问题. 问题1:重装系统之前 ...

  7. Visual Studio 2005 Web Deployment Projects版本不同引发的问题

    为了方便Visual Studio 2005发布为单一dll,微软发布了一个Visual Studio 2005 插件,Visual Studio 2005 Web Deployment Projec ...

  8. [导入]Visual Studio 2005 Web Deployment Projects版本不同引发的问题

    Visual Studio 2005 Web Deployment Projects版本不同引发的问题 文章来源:http://blog.csdn.net/net_lover/archive/2006 ...

  9. Visual Studio 2005 SP1集成(整理前辈版本)

    相信安装过Visual Studio 2005的人都知道,本来安装它就是一个漫长的过程,可是微软推出其SP1补丁更是不输于它.我曾经为了安装这两个玩意,一个下午就这样浪费掉了,简直就是时间杀手.好在H ...

最新文章

  1. 在辉腾锡勒我见到了狼
  2. dom jaxp详解
  3. Python风格总结:日期操作
  4. 敏捷开发用户故事系列之三:用户建模
  5. 线程库 c语言实现,130行C语言实现个用户态线程库——后续(一)
  6. MAC下Android的Eclipse开发环境的搭建 转自MacroCheng
  7. 关于ADO.NET的困惑
  8. 幅度为a0的载波由峰峰值_【砂石骨料】机制砂亚甲蓝值对混凝土性能的影响研究...
  9. PCA计算点云的法线
  10. LaTeX里插入数学公式
  11. IT项目的常见风险及应对措施
  12. php实现echarts任务关系图,react中使用echarts(人物关系图)
  13. 日语输入法使用技巧!
  14. 毕业设计:基于STM32与机智云平台的远程控制智能家居系统
  15. LeetCode 1006.笨阶乘
  16. android系统文件误删,误删手机系统文件怎么恢复
  17. virtualbox折腾记
  18. css html5 中文,盘点5个典型的CSS3文字特效
  19. oracle 12.2 迅雷下载,oracle下载-oracle数据库v12.2 最新版下载-6188手游网
  20. 1.1Android的发展和历史

热门文章

  1. MANet:盲图像超分辨率中空间变异核估计的互仿射网络(ICCV 2021)
  2. GODIVA:只需一步,文字到视频秒级生成,微软亚洲研究院最新成果
  3. 简单粗暴的多目标跟踪神器 – DeepSort
  4. DBFace升级,模型仅1.3M的轻量级高精度人脸检测模型
  5. 自动特征工程、NAS、超参调优和模型压缩,微软开源的NNI一库搞定!
  6. 三星是android吗,三星 Galaxy Camera(三星安卓相机)
  7. 周志华团队 | TensorFlow开源决策森林库TF-DF
  8. 一文理解图像处理之HOG特征
  9. Pygal简介、画廊--各种图形绘图代码
  10. 物联网设备感染Mirai病毒发起的DDoS攻击