[转]VS2008编译出的程序在另一台机器上无法运行的问题
上次拿到了一个vs2008的编译的Release程序,结果本地打开以后提示“应用程序配置不正确,程序无法启动”,可是我本地
1. 安装了vs2008
2. 打了sp1补丁
3. 安装了 vcredist.exe(Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
4. 安装了SP1 ATL 安全更新 (KB973675)
依然不起效果,网上搜了下,说是manifest不匹配
之后直接文本方式打开exe,在其中搜索Microsoft,看到这个可执行程序的manifest信息
.... name="Microsoft.VC90.CRT" version="9.0.30729.4148" processorArchitecture="x86" ....
.... name="Microsoft.VC90.CRT" version="9.0.30729.4148" processorArchitecture="x86" ....
字样
接着,去本地安装的VS2008目录下,寻找相关的manifest和dll,关键词"VC90",然后看到在VC/redist/x86下有以下两个文件夹
Microsoft.VC90.CRT
Microsoft.VC90.MFC
然后在VC/redist/Debug_NonRedist/x86目录下有以下两个文件夹
Microsoft.VC90.DebugCRT
Microsoft.VC90.DebugMFC
注意,是除了x86文件夹,amd或ia64下也有,要根据可执行程序的版本选择相关的版本,已文本方式打开其下的manifest文件,发现版本为 "9.0.30729.1"
接着把这四个文件夹拷到无法打开的可执行程序的同级目录,把.manifest文件都更改为和可执行文件的版本一致,在点开可执行文件,这次能正常打开了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?