如题,我自己电脑上有vs库的环境,编译好后的exe放在其他电脑上运行报错:
由于出现问题,程序停止正常工作。Windows将关闭程序,并会在有可用的解决方案时通知你。
可以用SxSTrace.exe来跟踪错误,找到原因:
以管理员模式打开powershell或者cmd,这里我以powershell为例
然后命令行进入你崩溃的exe在的文件路径(用来保存日志,这里我以我自己的为例)
cd C:\Users\502\Desktop\Release
开启SxSTrace进行追踪
SxSTrace Trace -logfile:SxsTrace.etl
运行刚刚报错的exe,然后关闭程序
在刚刚的powershell框里按下回车键关闭监听,并输入如下指令
SxSTrace Parse -logfile:SxsTrace.etl -outfile:aa.txt
5. 打开刚刚生成的 aa.txt ,看看是什么报错
Flags = 0ProcessorArchitecture = Wow32CultureFallBacks = zh-CN;zh-Hans;zh;en-US;enManifestPath = C:\Users\502\Desktop\Release\VrpnNet.dllAssemblyDirectory = C:\Users\502\Desktop\Release\Application Config File = -----------------信息: 正在解析清单文件 C:\Users\502\Desktop\Release\VrpnNet.dll。信息: 指令清单定义标识是 (null)。信息: 参考: Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"信息: 正在解析参考 Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。信息: 正在解析 ProcessorArchitecture WOW64 的参考。信息: 正在解析区域性 Neutral 的参考。信息: 正在应用绑定策略。信息: 未找到发布服务器策略。信息: 未找到绑定策略重定向。信息: 开始程序集探测。信息: 未找到 WinSxS 中的程序集。信息: 尝试在 C:\WINDOWS\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL 上探测指令清单。信息: 未找到区域性 Neutral 的指令清单。信息: 结束程序集探测。信息: 正在解析 ProcessorArchitecture x86 的参考。信息: 正在解析区域性 Neutral 的参考。信息: 正在应用绑定策略。信息: 未找到发布服务器策略。信息: 未找到绑定策略重定向。信息: 开始程序集探测。信息: 未找到 WinSxS 中的程序集。信息: 尝试在 C:\WINDOWS\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL 上探测指令清单。信息: 尝试在 C:\Users\502\Desktop\Release\Microsoft.VC90.DebugCRT.DLL 上探测指令清单。信息: 尝试在 C:\Users\502\Desktop\Release\Microsoft.VC90.DebugCRT.MANIFEST 上探测指令清单。信息: 尝试在 C:\Users\502\Desktop\Release\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.DLL 上探测指令清单。信息: 尝试在 C:\Users\502\Desktop\Release\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST 上探测指令清单。信息: 在 C:\Users\502\Desktop\Release\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST 上找到指令清单。信息: 结束程序集探测。
可以看到是缺少这几个依赖,回到我的有这个依赖的电脑,把这Microsoft.VC90.DebugCRT一整文件夹复制过去,里面包含“Microsoft.VC90.DebugCRT.manifest、msvcm90d.dll、msvcp90d.dll、msvcr90d.dll”这是个文件
然后再次运行exe文件,发现还是崩溃,又把上述过程重复了一遍,发现了新的报错:
信息: 正在解析参考 Microsoft.VC90.DebugCRT.mui,language="*",processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。信息: 正在解析 ProcessorArchitecture WOW64 的参考。信息: 正在解析区域性 zh-CN 的参考。信息: 正在应用绑定策略。信息: 未找到发布服务器策略。信息: 未找到绑定策略重定向。信息: 开始程序集探测。信息: 未找到 WinSxS 中的程序集。信息: 尝试在 C:\WINDOWS\assembly\GAC_32\Microsoft.VC90.DebugCRT.mui\9.0.21022.8_zh-CN_1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.mui.DLL 上探测指令清单。信息: 未找到区域性 zh-CN 的指令清单。信息: 结束程序集探测。信息: 正在解析区域性 zh-Hans 的参考。信息: 正在应用绑定策略。信息: 未找到发布服务器策略。信息: 未找到绑定策略重定向。信息: 开始程序集探测。信息: 未找到 WinSxS 中的程序集。
可能是版本不对,把这个版本号“9.0.21022.8”记住
用记事本打开刚刚复制过来的Microsoft.VC90.DebugCRT.manifes,发现这里的版本号确实不对,将版本号换成前面记住的“9.0.21022.8”然后保存
9.再次运行exe,成功运行!
或者,有另一个简单粗暴的方法,直接把vs运行环境再另一台电脑上安装一下就好,vcredist_x86.exe,我将资源都上传到了
/download/lxfHaHaHa/12795562,有需要的可以下载。