遇到这个问题,一定是缺少了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. poj 3250 栈应用

    #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> #d ...

  2. Repeater控件中的LinkButton(转)

    LinkButton小用法: 1.在使用时可以通过CommandName和CommandArgument属性联合起来绑定并传值,如:CommandName="record"Comm ...

  3. Leetcode 9. Palindrome Number(判断回文数字)

    Determine whether an integer is a palindrome. Do this without extra space.(不要使用额外的空间) Some hints: Co ...

  4. Redux你的Angular 2应用--ngRx使用体验

    Angular2和Rx的相关知识可以看我的Angular 2.0 从0到1系列第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2 ...

  5. JavaScript部分总结

    一.词法结构 1.js里面区分大小写 2.注释分为两类:  // 单行注释    /*多行注释*/ 3.字面量(直接量 literal) 12                             ...

  6. 我是如何自学Android,资料分享

       我是如何自学Android,资料分享(2015 版) 已经完成,我的建议是先把这一篇看完,再看2015 版的.关于我在学习中开发的项目代码,已经发布在: 爱开发-源码搜索,集成了上万个App源码 ...

  7. error LNK2005: DDX_Control 已经在 uafxcwd.lib(wincore2.obj) 中定义

    编译错误提示: 1>afxnmcdd.lib(wincore2.obj) : error LNK2005: "void __stdcall DDX_Control(classCData ...

  8. Nginx+Tomcat实现反向代理与动静分离

    1. 什么是动静分离  所谓动静分离就是通过nginx(或apache等)来处理用户端请求的静态页面,tomcat(或weblogic)处理动态页面,从而达到动静页面访问时通过不同的容器来处理. 2. ...

  9. JQuery AJAX的嵌套使用

    <script type="text/javascript"> $(function () { $.post("Ajax/HideHandler.ashx&q ...

  10. 20分钟入门Redux

    Redux就是个数据中心,不依附于任何框架在哪使用都行.但是和它最搭配的应该就是React了,而且大家学习它的动力大多也是解决React状态管理的问题.都说Redux文档详尽清晰,但我感觉并不友好,它 ...