部署VC2008应用程序

解决Visual C++2008安装失败,error 1935 重装系统后Visual C++没了,其他都能装上但VC2008会报这个error 1935。鉴于我把网上所有的解决方法排了一遍错,我也不知道是哪一步起效,所以就都放上来了。特别注意:报error 1935的错误原因可能不尽相同,比如我的报错开头为An error occurred,结尾为HRESULT:0x80070005。80070005 拒绝访问通常是权限问题,安装Visual C++无法写入文件夹或注册表(直接跳转第7步) 阅读详情

原文地址:http://blog.youkuaiyun.com/laiboy/article/details/5038165


如果你编译了一个VC2008的默认的CRT/MFC的应用程序,如果目标部署电脑上没有安装相应的VC2008的动态库,当运行你的程序的时个,会出现如下错误信息.

这是因为程序使用了基于VC2008的CRT/MFC的动态库版本.

解决这个问题,有三种方法:

1.使用静态链接库编译(缺点,生成的exe的程序过于庞大)

2.使用vcredist_x86.exe / vcredist_x64.exe 将VC2008的发行版的DLL安装在你的系统上.(缺点,只能支持发行版,调试版程序不能支持)

3.将你的程序依赖的CRT/MFC的动态库与你的程序一起发布(放在与你的发布程序同一目录中)

 

第一种和第二种就不详细讲如何实现了,只要讲第三种方法如何实现.优其是程序的开发是使用了VC2008 SP1的版本开发的程序.

 

在你的VC2008的安装目录下有两个目录,

  • C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/redist/x86/Microsoft.VC90.CRT
  • C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/redist/x86/Microsoft.VC90.MFC

只要将这两个目录下的文件一同拷贝到发布程序的同一目录下:

  • Microsoft.VC90.CRT.manifest
  • msvcr90.dll
  • msvcp90.dll
  • msvcm90.dll
  • Microsoft.VC90.MFC.manifest
  • mfc90.dll
  • mfc90u.dll
  • mfcm90.dll
  • mfcm90u.dll

这些是这个程序依赖的发行版动态库,同理,如果是调试版的发布程序,也一样把相应的调试动态库拷贝到相应目录.

程序如你意运行起来了!

 

但是,如果你安装的是VC2008 SP1的版本的时候,问题就来了,你的程序也一样运行不起来了!

原因就是安装了VC2008 SP1的时候,它把"VC/redist"用新的版本文件代替了,问题不大,但是,这个程序的版本是依赖于新的manifest的文件的,当你编译VC2008-SP1的程序的时候,它同时把RTM-version写入程序的manifest文件中,这个是旧的RTM-version,不与新版本的VC2008-SP1的"CRT/MFC"manifest版本一致,因此程序运行的时候是拒绝导入这些新的VC2008-SP1的CRT/MFC的运态库!

 

解决方法有两种.

 

方法一:

最简单的,修改Microsoft.VC90.CRT.manifest和Microsoft.VC90.MFC.manifest文件,将新的版本号改为旧的版本号,如果是依赖其它的Microsoft.VC90.*.manifest的文件,也同样是如此修改!

如果是装了VC2008-SP1后,它的版本号是“9.0.30729.8″

未装VC2008-SP1前的版本号为"9.0.21022.8"

过程如下:

将所依的动态库的及它们的 manifest 文件拷贝到发布应用程序的同一目录下,并修改Microsoft.VC90.*.manifest文件,将

version="9.0.30729.1"

修改为

version="9.0.21022.8"

恭喜你,你的程序运行起来了!



方法二

修改你的程序的所依赖的manifest,这样程序会依整于新的manifest.

过程如下:

在stdafx.h
这个文件中,增加如下宏定义:



#define _BIND_TO_CURRENT_VCLIBS_VERSION 1

程序编译后就会依赖于新的manifest,版本号为

"9.0.30729.1"



无须再修改manifest文件中的version版本号了.

将所依的动态库的及它们的 manifest 文件拷贝到发布应用程序的同一目录下

恭喜你,程序又运行起来了!



注意:如果你是想要新的MFC-feature-pack的功能,用这种方法是最好的.



注意一点,非常重要,如果已经安装了vcredist_*.exe程序包,注意的是Dll会自动把引用调到系统目录下的WinSxS目录下的,即不再引用同一目录下的动态库!

如果是编译时使用了(/clr)这个编译选项去支持.net开发,你必须要安装.net framework redistributable包!



不过,在2010,编译的程序会不再需要manifest文件!
VC运行库完整安装包(支持VS2008/VS2013 x86/x64) 简介:VC运行库是Windows系统中运行由Visual C++编译器构建的应用程序所必需的核心组件,包含C++标准库、MFC、CRT等关键函数库。本资源提供VS2008与VS2013版本的x86(32位)和x64(64位)可再发行运行库(vcredist),适用于多种C++开发的应用环境。这些Redistributable包支持多版本共存,避免依赖冲突,确保软件在无Visual Studio环境的计算机上稳定运行。用户可根据系统架构和应用需求选择对应版本进行安装,保障程序正常启动与执行。 阅读详情

相关推荐

Microsoft.VC90.CRT_x86.zip

适应于x86的程序,Release,Microsoft.VC90.CRT,msvcm90.dll,msvcp90.dll,msvcr90.dll

运行exe报错microsoft.vc90.crt.manifest could not be extracted

错误情况:点击运行exe提示microsoft.vc90.crt.manifestcouldnotbeextracted! 后exe退出 查询资料后怀疑是中文路径问题,将系统用户名改为了英文,仍然报相同错误,查看系统环境变量发现Temp等环境变量仍然使用的是中文账户名,C:\Users目录下仍然存放的是中文名称 大概因为安装系统第一次初始化时使用的中文名进行的软件安装,导致写入环境变量和软件配置的路径都使用的初始化账户名字,直接修改该名字会导致很多软件无法使用。 很多环境变量使用的%USER...

逍遥游侠的博客 2937

x86_microsoft.vc90.9.0.21022.8.debug

用于运行DEBUG版程序所需的动态库,用于精简版VS2008。 版本号:9.0.21022.8

部署VC2008应用程序时不能运行解决办法

当我们在部署VC2008应用程序时,经常会遇到下列提示: 1.运行程序时出错; 2.由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。   可能的解决办法如下: 如果你编译了一个VC2008的默认的CRT/MFC的应用程序,如果目标部署电脑上

攻城狮 1290

VS2008 VC运行库64下载-适用于Visual Studio 2008

VS2008 VC运行库64下载---适用于Visual Studio 2008

InstallShield 打包 自定义安装依赖环境

用InstallShield2020打包.NetFramework4.5程序,程序需要集成Access数据库,必须安装AccessDatabaseEngine引擎,而InstallShield中自带的依赖项不包含该项,所以自定义集成了该依赖项。

zhaoziyu2020的博客 1128

部署VC2008应用程序(2)

在上一篇"部署VC2008应用程充 "中,我谈到过,如果安装了vcredist_x86.exe / vcredist_x64.exe 这两个发布包后,即使使用CRT/MFC和manifest的文件与应用程序放在同一目录下,也不会调用,会调用已安装的vcredist_x86.exe / vcredist_x64.exe 的CRT/MFC运行时库. 如果是调试版或安装的vcredist_x86

JonnyLai 954

闲人闲谈PS之十二——WBS-BOM在装备制造项目中的实战解析

本文深入解析了WBS-BOM在装备制造项目中的核心应用。针对按订单设计/生产的行业痛点,WBS-BOM作为项目专属物料清单,完美连接SAP PS与PP模块,确保MRP能基于项目进行精准物料需求计算,实现从设计到生产的全链路项目化跟踪与管理。

weixin_29284885的博客 399

vs编译后在本机能运行,在别的机器上运行提示runtime Error的问题

一下内容转自http://blog.sina.com.cn/s/blog_83b3bb460101620n.html 我们在部署VC2008应用程序时,经常会遇到下列提示: 1.运行程序时出错; 2.由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 可能的解决办法如下: 如果你编译了一个VC2008的默认的CRT/MFC的应用程序,如果目标...

525

Ultrascale/Ultrascale+ FPGA GTH IP及结构详解(一)

FPGA GTH Transceiver

houzi6320的博客 1万+

2023-12-26~2025-07-04备份

一、海康视觉与汇川机器人 服务器-客户端通信设置IP在同一网段名称IP端口类型海康相机工控机7930服务器机器人3000客户端海康VM服务器设置1通信管理 增添TCP服务端,设置本机IP:192.168.0.20,端口号79302 协议解析 通信双方约定通信格式(设置收发数据格式,分隔符)机器人客户端设置(不同类型机器人设置有差别)1 通讯服务设置 设置连接服务器IP、服务端端口号、机器人端口号,确保连接正常2 协议解析 使用指令代码构建通讯解析。

青铜小码农 3126

VS2008 VC发布库:让软件开发更高效的强大工具

VS2008 VC发布库:让软件开发更高效的强大工具 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在软件开发领域,选择合适的开发工具和库是至关重要的。VS2008 VC发布库,作为一个为开发人员提供的宝贵资源,为广大开发者解决了兼容性问题,保证了软件项目的稳定运行。本文将详细介绍VS2008 VC发布库的核心功能、技术优势和应用场景,帮助开发者了解这一开源项目的重要...

gitblog_06736的博客 1023

乐企增值税及附加税费预缴申报表填报能力说明文档V1.004

申报表填报,是指企业在自有业务系统中将算税结果数据按预填规则要求加工汇总后,进行申报表填报的过程。申报表填报前对纳税申报所需的前提条件进行校验。校验通过后,应用前序算税结果数据及预填规则进行纳税申报表预填,生成申报表数据。申报表数据通过申报业务规则校验后,经纳税人确认即完成申报表填报业务。

记录点滴 354

VS2008环境下开发的某些程序在其他机器运行提示“由于应用程序配置不正确,应用程序未能启动”的问题(IIS)

比较全的有关vs2008部署问题集(1): http://blog.csdn.net/buhuizheyangba/article/details/7220598 比较全的有关vs2008部署问题集(2): http://blog.csdn.net/fengbingchun/article/details/6449241 //////////////////////////////////

wainiwann的专栏 410

RK平台以太网设置中添加代理设置

以太网中配置Configuration的时候可以IpConfiguration的初始化函数来设置代理类型和代理参数。通过添加一个KEY_ETH_PROXY的选项来设置代理的配置,然后再设置以太网静态或者动态的类型时候下发给系统进行设置。

Android系统开发笔记 655

基于Jeecgboot3.9.0的vue3版本前后端分离的flowable流程管理平台

基于Jeecgboot3.9.0的vue3版本前后端分离的flowable流程管理平台

宁波阿成的博客 900

应用程序配置不正确,程序无法启动”详细举例(2)(vc2008 sp1)

引:“应用程序配置不正确,程序无法启动”详细举例(1)(vc2008 sp1) 上述的解决办法我称之为共享程序集部署方法,同样的我们也可以采用私有程序集的部署方式来发布程序。 Helloworld例子的私有程序集的部署方法:(针对release版本,仍然是采用上面的例子 ,采用参考资料中提到的第2中私有程序集部署方法:将Microsoft.VC90.CRT目录下的manifest文件的版

moyumoyu的专栏 598

apollo-减速带通行

主车在通过减速带时速度不超过3m/s

是菜鸟o的博客 387

应用程序配置不正确,程序无法启动 的解决方法资料收集

<br />原文出处: http://hi.baidu.com/fairysky/blog/item/130dda13db7b050a5aaf53be.html<br /> <br />参考资料: 应用程序配置不正确,程序无法启动 的解决方法资料收集<br /> <br />内容我就不copy了,大家可以自己去看,总来说产生这个问题的原因可以归结如下:<br />vc2005/vc2008采用了新的程序部署技术(manifest清单文件),manifest清单文件实际上类似于我们常用的makefile文件,

cosair的专栏 824

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

“由于应用程序配置不正确,应用程序未能启动”的问题

VC9编译的程序在没有装过VC9(确切的说是.Net Framework3.5)的机器上运行时,如果提示“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”这个错误,那么就说明该程序动态链接了VC9的运行时库,(如果还用到了MFC,那么可能动态链接了VC9的MFC库,同理还有ATL库),以及缺少对应的manifest文件,程序在目标机器上没有找到这些库和配置文件,因此...

数据库天地 797

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

解决不安装VC运行库(VC2005,VC2008),程序运行出错的方法。

因为VS2005以后程序采用了manifest的生成方式,所以发布的时候要和运行库一起发布。但是我们平时开发和发布的时候如果都要客户安装运行库,那就不太方便了。你可以Microsoft下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=2092 我说说不用安装VC2008运行库的方法: 一、先要在编译程序的时候,把程序的mani

编爱程 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: wxPython实现仿QQ登录界面
下一篇: Py2exe 打包后图标不显示
xugangjava
博客等级 码龄16年 83粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值