vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作

如题,我自己电脑上有vs2008库的环境,编译好后的exe放在其他电脑上运行报错:
由于出现问题,程序停止正常工作。Windows将关闭程序,并会在有可用的解决方案时通知你。
vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第1张图片

可以用 SxSTrace.exe 来跟踪错误,找到原因:

  1. 以管理员模式打开powershell或者cmd,这里我以powershell为例vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第2张图片
    然后命令行进入你崩溃的exe在的文件路径(用来保存日志,这里我以我自己的为例)
cd C:\Users\502\Desktop\Release

vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第3张图片

  1. 开启SxSTrace进行追踪
SxSTrace Trace -logfile:SxsTrace.etl

vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第4张图片

  1. 运行刚刚报错的exe,然后关闭程序
    vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第5张图片

  2. 在刚刚的powershell框里按下回车键关闭监听,并输入如下指令

SxSTrace Parse -logfile:SxsTrace.etl -outfile:aa.txt

vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第6张图片
5. 打开刚刚生成的 aa.txt ,看看是什么报错

	Flags = 0
	ProcessorArchitecture = Wow32
	CultureFallBacks = zh-CN;zh-Hans;zh;en-US;en
	ManifestPath = C:\Users\502\Desktop\Release\VrpnNet.dll
	AssemblyDirectory = 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 上找到指令清单。
			信息: 结束程序集探测。

vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第7张图片
可以看到是缺少这几个依赖,回到我的有这个依赖的电脑,把这Microsoft.VC90.DebugCRT一整文件夹复制过去,里面包含“Microsoft.VC90.DebugCRT.manifest、msvcm90d.dll、msvcp90d.dll、msvcr90d.dll”这是个文件
vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第8张图片
vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第9张图片

  1. 然后再次运行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 中的程序集。

vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第10张图片
可能是版本不对,把这个版本号“9.0.21022.8”记住

  1. 用记事本打开刚刚复制过来的Microsoft.VC90.DebugCRT.manifes,发现这里的版本号确实不对,将版本号换成前面记住的“9.0.21022.8”然后保存
    vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第11张图片
    9.再次运行exe,成功运行!
    vs2008库编译的exe在其他电脑上无法运行:由于出现问题,程序停止正常工作_第12张图片

或者,有另一个简单粗暴的方法,直接把vs2008运行环境再另一台电脑上安装一下就好,vcredist_x86.exe,我将资源都上传到了
https://download.csdn.net/download/lxfHaHaHa/12795562,有需要的可以下载。

你可能感兴趣的:(工具,vs2008,sxstrace,dll,Microsoft.VC90.,DebugCRT)