最近开发的时候碰到一个心累的问题:由于使用到第三的SDK,而且该SDK有一定的历史,
在开发机上运行的时候,能够正常运行,但是部署到客户的设备时却报,无法正常运行程序
这种错误一般都是由于缺 msvcr**.dll msvcp**.dll,
这个时候一般直接安装对应的支持库即可,推荐一个比较全的
Microsoft Visual C++ Redistributable Package合集(2005~2010)
http://download.csdn.net/detail/inaqui/3995341
但是,安装完对应的支持库后,发现并不能解决问题
使用depends对程序的依赖项进行检查,提示以下ERROR
Error: The Side-by-Side configuration information for "c:program files (x86)common filesXXXX.DLL" contains errors. sxstrace.exe (14001).
一开始以为是x64和x32的支持库安装的有问题,卸载后,只安装x86版本的支持库,仍旧无法工作。
于是使用sxstrace.exe跟踪程序的运行,
sxstrace.exe的使用.
启动cmd控制台,设置日志地址 sxstrace.exe Trace -logfile:C:MySxSTrace.log 这会是开始追踪
在新的控制台中执行有问题的程序
等待程序出错.
然后在原来运行sxstrace.exe的控制台中敲回车
并执行命令
sxstrace.exe Parse -logfile:C:MySxSTrace.log -outfile:C:MySxSTrace.txt
打开MySxSTrace2222.txt 文件,查看
应该是这个老版本dll不对,release中有debug的信息.
[转]找不到从属程序集 Microsoft.VC90.DebugCRT
VC编写的程序不能在其他机器上运行的解决方案
https://www.cnblogs.com/Crysaty/p/6703256.html
https://download.csdn.net/download/jo_lan/9841040
后记原因,有个dll里面加了的debuge版本的lib导致.XXXXXXXXXX
开发不会有问题,运行在现场环境 会有问题.