码迷,mamicode.com
首页 > 移动开发 > 详细

运行错误:应用程序无法启动因为并行配置不正确。the application has failed to start because its side-by-side configuration is incorrect 解决方法

时间:2017-03-23 20:35:26      阅读:580      评论:0      收藏:0      [点我收藏+]

标签:app   文件   目录   ora   版本号   process   文件夹   processor   sid   

问题描述:

                当电脑同时安装VS2008和VS2008 SP1时,编译出来的Visual C++程序的manifest 文件会默认引用VS2008的MFC版本和CRT版本。如下:

 

  <dependency>

    <dependentAssembly>

      <assemblyIdentity type=‘win32‘ name=‘Microsoft.VC90.CRT‘ version=‘9.0.21022.8‘ processorArchitecture=‘x86‘ publicKeyToken=‘1fc8b3b9a1e18e3b‘ />

    </dependentAssembly>

  </dependency>

  <dependency>

    <dependentAssembly>

      <assemblyIdentity type=‘win32‘ name=‘Microsoft.VC90.MFC‘ version=‘9.0.21022.8‘ processorArchitecture=‘x86‘ publicKeyToken=‘1fc8b3b9a1e18e3b‘ />

    </dependentAssembly>

  </dependency>

 

 

说明本程序需要引用版本号为9.0.21022.8的MFC库和运行时库。

 

但是程序可能编译时引用的却是VS2008 SP1的MFC库和运行时库,其版本号为:9.0.30729.6161.

(具体以电脑上的安装版本为准,Release版路径在:C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86  )

 

所以程序运行时其实际依赖的是9.0.30729.6161  MFC库,但是却查找的是9.0.21022.8版本的MFC库. 如果程序用到了9.0.21022.8版本的MFC库里没有的功能。 就会报错。

 

解决方法:

因为vc++应用程序运行时搜索库文件默认会先搜索C盘下库文件,再搜索本地文件夹下的MFC库。 所以需要如下解决方式:

方法1:给项目开始的头文件里加上宏,使之只能使用9.0.30729.6161的MFC库。 (鉴于微软后续的更新可能会引起BUG, 不推荐此方法)

方法2: 在应用程序的本地运行目录拷贝9.0.30729.6161版本的MFC库,但是将其manifest 版本改为9.0.21022.8;即:把C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86  目录下的Microsoft.VC90.MFC和Microsoft.VC90.CRT文件夹(具体看是否被程序引用)拷到应用程序目录。再将manifest文件中的版本号修改为9.0.21022.8。

运行错误:应用程序无法启动因为并行配置不正确。the application has failed to start because its side-by-side configuration is incorrect 解决方法

标签:app   文件   目录   ora   版本号   process   文件夹   processor   sid   

原文地址:http://www.cnblogs.com/bolddream/p/6606738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!