解决"应用程序无法启动,因为应用程序的并行配置不正确"问题

VS2013在编译配置opencv的时候想同时使用版本2和版本3,但是按照我之前配置方法,同时添加进去了,结果编译出现“test.exe应用程序无法启动,因为应用程序的并行配置不正确”,开始以为是开始以为是配置方法问题,重新试了好多次,但是不对。

按照下面的这个方法先找到64位对应的文件日志试了一下:

Win7(x86)旗舰版运行一个GUI程序,提示"应用程序无法启动,因为应用程序的并行配置不正确";

查看错误日志(控制面板 -> 系统与安全 -> 管理工具 -> 查看事件日志 -> Windows 日志 -> 应用程序),发现一个来源是SideBySide的错误日志;

查看日志常规信息,“C:\Windows\WinSxS\x86_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.4053_none_cbf21254470d8752\MFC80U.DLL”的激活上下文生成失败。找不到从属程序集

查看日志详细信息,Microsoft.VC80.MFCLOC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"。请使用 sxstrace.exe 进行详细诊断。

网上找到的办法是安装“Microsoft Visual C++ 2005 Redistributable Package (x86)”或“Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)”;

装上了还是提示一样的错误,后面发现还有补丁包,“Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC 安全更新”;

安装补丁包时会自动删除旧的版本,再次运行就ok了。

结果失败。。。。。。。。。。。。。。。。。。

又按照网上的方法找到一个知道教程:

实验了一下,感觉以下几种解决办法是可行的:
方法一:
在类似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和你的程序捆绑安装。

这几个方法也都试了一下,还是无法成功。。。。。。。。。。。。

郁闷呐,连续几天很纠结。

然后试了一个最简单的程序,可是还是无法运行exe,这就更加郁闷了。。。。

然后先试了一下,新建项目之后,在解决方案菜单下,右击项目点清理,再运行,还是不通过。

最后我在这个项目的里面找到log文件,打开看了一下是怎么回事?

生成启动时间为 2016/1/21 13:57:53。
     1>项目“d:\vs2013 project\Console4\Console4\Console4.vcxproj”在节点 2 上(Build 个目标)。
     1>Link:
         D:\VS2013\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"d:\vs2013 project\Console4\Debug\Console4.exe" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /manifestinput:"opencv_ts300d.lib opencv_world300d.lib" /DEBUG /PDB:"d:\vs2013 project\Console4\Debug\Console4.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"d:\vs2013 project\Console4\Debug\Console4.lib" /MACHINE:X86 Debug\main.obj
     1>已完成生成项目“d:\vs2013 project\Console4\Console4\Console4.vcxproj”(Build 个目标)的操作 - 失败。

生成失败。

已用时间 00:00:00.08

瞬间看到我清理项目之后怎么还有opencv_ts300d.lib、opencv_world300d.lib然后找到配置里面的清单工具,输入和输出,有一个附加清单文件,果然有这两个东西。。。。。

然后删除,试了一个简单程序,运行ok了


发布了347 篇原创文章 · 获赞 607 · 访问量 260万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览