VS 2005部署应用程序提示“应用程序无法正常启动( 0x0150002)” 解决方案
遇到这个问题,一定是缺少了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)” 解决方案的更多相关文章
- 【续集】在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题
dudu 的一篇博文:在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题 针对 IIS 部署 ASP.NET 5 应用程序的问题,在上面博文中主要采用两种方式尝试: VS2015 的 Publ ...
- Linux CentOS7部署ASP.NET Core应用程序,并配置Nginx反向代理服务器
前言: 本篇文章主要讲解的是如何在Linux CentOS7操作系统搭建.NET Core运行环境并发布ASP.NET Core应用程序,以及配置Nginx反向代理服务器.因为公司的项目一直都是托管在 ...
- 在IIS中部署ASP.NET 5应用程序遭遇的问题
用VS2015中创建了一个非常简单的ASP.NET5程序: 在Startup.cs中只输入一行代码: using System; using Microsoft.AspNet.Builder; usi ...
- 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 ...
- 提示“应用程序无法启动,因为应用程序的并行配置不正确”不能加载 System.Data.SQLite.dll
新版本SQLITE,如果下载Precompiled Binaries版会出现提示“应用程序无法启动,因为应用程序的并行配置不正确”不能加载 System.Data.SQLite.dll. 下载Prec ...
- 在Vista以上版本运行WTL程序,有时候会提示“这个程序可能安装补正确...”的错误
在Win7/Vista下,如何以兼容模式运行exe? https://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx 问题描 ...
- CentOS 7部署ASP.NET Core应用程序
看了几篇大牛写的关于Linux部署ASP.NET Core程序的文章,今天来实战演练一下.2017年最后一个工作日,提前预祝大家伙元旦快乐.不扯淡,直接进入正题.您有任何问题请在评论区留言. 1.环境 ...
- 彻底禁用Chrome的“请停用以开发者模式运行的扩展程序”提示
前言 作为一个前端程序员,难免会有一些专属自己的小扩展,没必要每一个都发到Chrome应用商店去,虽然可以勾选"开发者模式"来运行本地插件,但是每次启动都会有一个烦人的" ...
- 如何使用Docker部署一个Go Web应用程序
熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ...
随机推荐
- 自动化中的PageObject思想
谈着这个话题很大,因为我自己在自动化分层的方面做的就不是很好,最近在做java+selenium中,如果不分层去管理,代码就显得很乱,如下: 下面代码主要是做了一个登录,登录后在修改自己的一些个人信息 ...
- Linux 内核简介
Linux内核简介 一.系统架构 (1). Linux系统架构 ##用户空间: 文件系统 C库 ##内核空间: 接口 内核 (2). Linux内核架构 二.Linux内核源代码 下载地址 www.k ...
- Mac环境下svn的使用(转载)
在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还 ...
- HDOJ2025查找最大元素
查找最大元素 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- C# 正则表达式(一)
首先来复习一下正则表达式的基础知识,本篇文章分为2个部分,第一个部分复习正则表达式中的元字符和简写表达式,第二部分复习正则表达式的匹配和提取. 1.正则表达式中的元字符和简写表达式 ".&q ...
- html5 canvas 圆形抽奖的实例
年底没啥,抽空学习了canvas,写了个html5抽奖的代码,造了个轮子,有用的童鞋可以拿走. 其中,canvas.onclick触发抽奖行为,概率可以在core.lottery()函数上添加,美化也 ...
- 【转载】 c语言inline函数的使用
c语言inline函数的使用 转载自:http://blog.chinaunix.net/uid-21843265-id-3056446.html 大学在教科书上学习过inline函数,定义为inli ...
- C++对象的JSON序列化与反序列化探索
一:背景 作为一名C++开发人员,我一直很期待能够像C#与JAVA那样,可以轻松的进行对象的序列化与反序列化,但到目前为止,尚未找到相对完美的解决方案. 本文旨在抛砖引玉,期待有更好的解决方案:同时向 ...
- libevent 初试
一直就想用一下libevent库,直到今天才去码代码.用法在他的头文件里面写的很清楚,原理的话也不是很难,感谢作者做的工作! 今天做了几个探索: 实现自定义事件类型的设置与触发 尝试 setInter ...
- MySQL学习笔记之数据存储类型
说明:本文是作者对MySQL数据库数据存储类型的小小总结. Numeric Type (数字类型) 1.TINYINT.SMALLINT.MEDIUMINT.INT.BIGINT主要根据存储字节长度不 ...