遇到这个问题,一定是缺少了CRT、MFC、ATL的DLL,不同版本的VS是不一样的。系统自带这些库的Release版,如果没有自带,打补丁就有了;系统不自带这些库的Debug版,所以Debug版的程序在一般电脑是不能正常运行的(不过装了对应版本的VS就可以正常运行了)。这篇博文对VS2008 部署应用程序 “应用程序配置不正确,程序无法启动”的问题有比较详细的解决方案,有兴趣的童鞋可以看一看。

如果是部署环境导致了这个错误,那么上一段提到的那篇博文足矣解决问题,如果是程序本身的错误,那么需要进一步进行排查。最近我的一个VS2005开发的项目,发布Rlease版本,部署到其他电脑的时候,有些电脑提示“应用程序无法正常启动( 0x0150002)” 如图1,有些正常。经过不断测试,发现该错误与XP、Win7和Win8系统无关,与是否安装VS2005环境有关。很明显,Release版的程序却需要Debug版的库,基本可以断定是我的程序出了问题。虽然通过安装VS2005或添加VS2005 Debug版的CRT、MFC、ATL库可以让程序运行,但这只是掩盖了问题,并没有解决问题。

图1 应用程序正常初始化 0x0150002失败

遇到这种莫名其妙的问题,直接Google报错提示是最佳选择,但是在Google到的方法都不起作用的时候,需要通过日志去分析到底哪里出问题,方法如下:

  1、右键“计算机”,打开“管理”,选择“系统工具”—“事件查看器”—“Windows日志”—“应用程序”,如图2所示。右边可以看到错误信息,第一条就是我想要找的错误信息;

图2 查看应用程序出错日志

  2、双击该错误信息,弹出图3日志信息。该信息比“应用程序无法正常启动( 0x0150002)” 有用多了,疑点有两个,一个是少了CRT库,另一个是ACE.dll有问题。毫无疑问,既然是发布Release版本,还要Debug版本的库,是这个ACE.dll出了问题;

图3 应用程序出错日志

  回到VS2005查看程序,果然,之前太大意了,ACE.dll竟然是Debug版,难怪出问题了。重新编译Release的ACE.dll,替换原先的ACE.dll,问题解决。

VS 2005部署应用程序提示“应用程序无法正常启动( 0x0150002)” 解决方案的更多相关文章

  1. 【续集】在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题

    dudu 的一篇博文:在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题 针对 IIS 部署 ASP.NET 5 应用程序的问题,在上面博文中主要采用两种方式尝试: VS2015 的 Publ ...

  2. Linux CentOS7部署ASP.NET Core应用程序,并配置Nginx反向代理服务器

    前言: 本篇文章主要讲解的是如何在Linux CentOS7操作系统搭建.NET Core运行环境并发布ASP.NET Core应用程序,以及配置Nginx反向代理服务器.因为公司的项目一直都是托管在 ...

  3. 在IIS中部署ASP.NET 5应用程序遭遇的问题

    用VS2015中创建了一个非常简单的ASP.NET5程序: 在Startup.cs中只输入一行代码: using System; using Microsoft.AspNet.Builder; usi ...

  4. windows server 2012 r2 iis8.5 部署asp.net mvc4/5程序小结

    windows server 2012 r2 iis8.5 部署asp.net mvc4/5程序小结 原文链接:http://www.xuanhun521.com/Blog/66d491f8-b479 ...

  5. 提示“应用程序无法启动,因为应用程序的并行配置不正确”不能加载 System.Data.SQLite.dll

    新版本SQLITE,如果下载Precompiled Binaries版会出现提示“应用程序无法启动,因为应用程序的并行配置不正确”不能加载 System.Data.SQLite.dll. 下载Prec ...

  6. 在Vista以上版本运行WTL程序,有时候会提示“这个程序可能安装补正确...”的错误

    在Win7/Vista下,如何以兼容模式运行exe?     https://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx     问题描 ...

  7. CentOS 7部署ASP.NET Core应用程序

    看了几篇大牛写的关于Linux部署ASP.NET Core程序的文章,今天来实战演练一下.2017年最后一个工作日,提前预祝大家伙元旦快乐.不扯淡,直接进入正题.您有任何问题请在评论区留言. 1.环境 ...

  8. 彻底禁用Chrome的“请停用以开发者模式运行的扩展程序”提示

    前言 作为一个前端程序员,难免会有一些专属自己的小扩展,没必要每一个都发到Chrome应用商店去,虽然可以勾选"开发者模式"来运行本地插件,但是每次启动都会有一个烦人的" ...

  9. 如何使用Docker部署一个Go Web应用程序

    熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ...

随机推荐

  1. centos下安装usb摄像头驱动

    centos安装在虚拟机下,win7下能正常使用摄像头. 虚拟机显示监测到摄像头,但驱动安装失败. terminal下输入yum install cheese,提示是否安装,输入y确认下载,大概100 ...

  2. jQurey对表单表格的操作及更多应用(方法型)

  3. Linux 命令 - at: 在指定的时间执行任务

    在指定的时间执行任务. 命令格式 at [-V] [-q queue] [-f file] [-mldbv] TIMEat [-V] [-q queue] [-f file] [-mldbv] -t ...

  4. JavaScript设置cookie

    在做网站的时候会用到JS操作cookie,现在写下来,算是对自己工作的一次小小总结,后面用到的时候就不用再写一遍了,高手就不用看了. /* 添加cookie 参数:cookie名,cookie值,过期 ...

  5. Sqlite事物与锁

    1事务 事务定义了一组SQL命令的边界,这组命令或者作为一个整体被全部执行,或者都不执行.事务的典型实例是转帐. 2事务的范围 事务由3个命令控制:BEGIN.COMMIT和ROLLBACK.BEGI ...

  6. zookeeper启动报错(数据目录权限不对)

    zookeeper启动报错日志: 2016-11-16 11:19:43,880 [myid:3] - INFO [WorkerReceiver[myid=3]:FastLeaderElection@ ...

  7. Java之绘制二次曲线

    前面已经介绍过绘制方法.这里不再赘述. 画一下草图来看看:灰色表示X值,红色表示Y值. 在这里要值得注意的是:当我们把它们的坐标在纸上画出来时,就会觉得“有问题”了,你看A(60,20,120,100 ...

  8. ios开发:GCD多线程

    ios有三种多线程编程技术,分别是NSThread,Cocoa NSOperation和GCD,GCD全称Grand Central Dispatch 是Apple开发的一个多核编程的解决方法,在iO ...

  9. NodeJS服务器退出:完成任务,优雅退出

    上一篇文章,我们通过一个简单的例子,学习了NodeJS中对客户端的请求(request)对象的解析和处理,整个文件共享的功能已经完成.但是,纵观整个过程,还有两个地方明显需要改进: 首先,不能共享完毕 ...

  10. Android开发虚拟机的各种分辨率