先贴错误:应用程序无法运行,并行配置不正确 ,使用命令行sxstrace.exe。百度解决版本

起因:同事给我一 EXE,然后基于 其进行开发 dll和模块,但是无法加入进程,无法运行。

SxsTrace使用

1、程序无法运行, sxstrace.exe进行追踪。

1、测试本地命令能否成功执行。 cmd 下,任意目录,c:\> sxstrace 回车;

2、转(cd)至程序所在目录,运行命令:SxsTrace Trace -logfile:SxsTrace.etl,启动跟踪;

3、运行程序(可以命令行运行);回到命令行,点击回车;

4、继续运行命令:SxsTrace Parse -logfile:SxsTrace.etl -outfile:info.txt,解析跟踪信息为文本;

 信息收集

    • vs2005 debug crt目录: C:\Program Files (x86)\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86
    • 系统运行库目录(Win7 64位) : C:\Windows\winsxs\Manifests
    • Visual Studio 2005正式版的版本号是8.0.50727.42,visual studio 2005 sp1的版本号  8.0.50727.762
    • 在控制面板中,VC2005运行库的情况:Visual c++ 2005 Redistributable 安装版本号分别为 8.0.56366 ,8.0.61000

------------------------------------------------------------------

解析

对于一个拷贝过来的程序,出现 “程序运行错误,检查并行配置,SxsTrace.exe进行追踪。”

追踪之后主要内容。
//重点是下面
 参考是 Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"。
    定义是 Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"。

=================
开始生成激活上下文。
输入参数:
Flags =
ProcessorArchitecture = Wow32
CultureFallBacks = zh-CN;zh-Hans;zh;en-US;en
ManifestPath = C:\bin\bin\debug\yourapp.exe
AssemblyDirectory = C:\bin\bin\debug\
Application Config File =
-----------------
信息: 正在解析清单文件 C:\bin\bin\debug\yourapp.exe。
信息: 指令清单定义标识是 (null)。
信息: 参考: Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"
信息: 参考: Microsoft.VC80.DebugMFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"
信息: 参考: Microsoft.Windows.Common-Controls,language="*",processorArchitecture="x86",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.0.0"
信息: 参考: Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"
//······
信息: 正在解析清单文件 C:\bin\bin\debug\Microsoft.VC80.DebugCRT.MANIFEST。
信息: 指令清单定义标识是 Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"。
错误: 指令清单中找到的组件标识与所请求组件的标识不匹配。
//重点是下面
参考是 Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"。
定义是 Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"。
错误: 生成激活上下文失败。
结束生成激活上下文。

通过trace,DebugCRT的版本不对,缺乏相应的CRT(运行库)。参考是指 "exe用的版本",定义指 "系统所有的"。通过几个途径,下载vs 2005 sp1 crt(vc80_8.0.50727.762) 但是感觉下到的都是release版本的。

其中 vs2005_sp1 crt C:\Windows\winsxs\Manifests 安装之后截图为

  继续trace,结果如下。分析是系统仍然没有找到debug版本的 CRT。debug版本,开发环境是需要的,想到了 vs2005 sp补丁。
下载之后,sp1

=================
开始生成激活上下文。
输入参数:
Flags =
ProcessorArchitecture = Wow32
CultureFallBacks = zh-CN;zh-Hans;zh;en-US;en
ManifestPath = C:\bin\bin\debug\swcapp.exe
AssemblyDirectory = C:\bin\bin\debug\
Application Config File =
-----------------
信息: 正在解析清单文件 C:\bin\bin\debug\swcapp.exe。
信息: 指令清单定义标识是 (null)。
信息: 参考: Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"
信息: 参考: Microsoft.VC80.DebugMFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"
信息: 参考: Microsoft.Windows.Common-Controls,language="*",processorArchitecture="x86",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.0.0"
信息: 参考: Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"
信息: 正在解析参考 Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"。
·······
信息: 正在解析 ProcessorArchitecture x86 的参考。
信息: 正在解析区域性 Neutral 的参考。
信息: 正在应用绑定策略。
信息: 在 C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.debugcrt_1fc8b3b9a1e18e3b_8.0.50727.42_none_3825408a574a21cb.manifest 查找发布服务器策略。
信息: 未找到绑定策略重定向。
信息: 开始程序集探测。
信息: 未找到 WinSxS 中的程序集。
信息: 尝试在 C:\windows\assembly\GAC_32\Microsoft.VC80.DebugCRT\8.0..762__1fc8b3b9a1e18e3b\Microsoft.VC80.DebugCRT.DLL 上探测指令清单。
信息: 尝试在 C:\bin\bin\debug\Microsoft.VC80.DebugCRT.DLL 上探测指令清单。
信息: 尝试在 C:\bin\bin\debug\Microsoft.VC80.DebugCRT.MANIFEST 上探测指令清单。
信息: 尝试在 C:\bin\bin\debug\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.DLL 上探测指令清单。
信息: 尝试在 C:\bin\bin\debug\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.MANIFEST 上探测指令清单。
信息: 未找到区域性 Neutral 的指令清单。
信息: 结束程序集探测。
错误: 无法解析参考 Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"。
错误: 生成激活上下文失败。
结束生成激活上下文。

  打补丁 vs2005 sp1(大小 约431M),C:\Windows\winsxs\Manifests 截图

  同时 C:\Program Files (x86)\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.manifest
详细为 version="8.0.50727.762" 之前为  version="8.0.50727.42"

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
<file name="msvcr80d.dll" hash="9062fecdbc9ab7df4d66e81b37e9cecdee037430" hashalg="SHA1"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>g5HUX4P7M3mkZuWgfND7EdkmVgs=</dsig:DigestValue></asmv2:hash></file>
<file name="msvcp80d.dll" hash="cf233a4bb28335cd6b4f62b5947d119faefa5bcb" hashalg="SHA1"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>lGYgPP6K9l5G0HBKTJ/Rlj2Vybg=</dsig:DigestValue></asmv2:hash></file>
<file name="msvcm80d.dll" hash="47021cd154192d51aad190daed426bf47156fa40" hashalg="SHA1"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>1fLI6D1TNH6Hwc1D/toIuhn/R+4=</dsig:DigestValue></asmv2:hash></file>
</assembly>

-------------------------------------------------------------------------------------------------------
解析成功之后的SxsTrace

=================
开始生成激活上下文。
输入参数:
Flags = 0
ProcessorArchitecture = Wow32
CultureFallBacks = zh-CN;zh-Hans;zh;en-US;en
ManifestPath = C:\bin\bin\debug\yourapp.exe
AssemblyDirectory = C:\bin\bin\debug\
Application Config File =
-----------------
信息: 正在解析清单文件 C:\bin\bin\debug\yourapp.exe。
信息: 指令清单定义标识是 (null)。
信息: 参考: Microsoft.Windows.Common-Controls,language="*",processorArchitecture="x86",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.0.0"
信息: 正在解析参考 Microsoft.Windows.Common-Controls,language="*",processorArchitecture="x86",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.0.0"。
信息: 正在解析 ProcessorArchitecture WOW64 的参考。
·······
信息: 正在解析 ProcessorArchitecture x86 的参考。
信息: 正在解析区域性 zh-CN 的参考。
信息: 正在应用绑定策略。
信息: 自动服务策略重定向的程序集版本。
信息: 发布策略程序集标识是 Microsoft.Windows.Common-Controls.Resources,language="zh-CN",processorArchitecture="x86",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.7600.16385"。
信息: 开始程序集探测。
信息: 尝试在 C:\windows\WinSxS\manifests\x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_6.0.7600.16385_zh-cn_b7a33d2d3f47b7fb.manifest 上探测指令清单。
信息: 在 C:\windows\WinSxS\manifests\x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_6.0.7600.16385_zh-cn_b7a33d2d3f47b7fb.manifest 上找到指令清单。
信息: 结束程序集探测。
信息: 正在解析清单文件 C:\windows\WinSxS\manifests\x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_6.0.7600.16385_zh-cn_b7a33d2d3f47b7fb.manifest。
信息: 指令清单定义标识是 Microsoft.Windows.Common-Controls.Resources,language="zh-CN",processorArchitecture="x86",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.7600.16385"。
信息: 生成激活上下文成功。//成功!
结束生成激活上下文。

=================
总析:
sxstrace追踪,结果分析。
开发人员 如果发debug给parter(or 测试机),尽量附带相应的 debugcrt;或者保持两者环境相同。
但 你要是将debug版本发布成品,那。。。

===================================================

写在2018.1

W2A_CP 和 A2W_CP 引发 语法错误 C2143.  分号之前缺少 ')'。

VS2005 Sp1补丁包:修复了 atlconv.h中 atl W2A_CP macro的  ‘)’的缺失问题。

修复前后diff区别

SxsTrace程序追踪 && 错误信息分析的更多相关文章

  1. valgrind 的使用及错误信息分析

          这里记录一下使用valgrind查找你的应用程序中的各种潜在的错误信息,并举例说明. 经常使用valgrind查找一下你的代码的内存有关错误,对移植到嵌入系统后的系统稳定性来说有着重要的意 ...

  2. 原创:去繁存简,回归本源:微信小程序公开课信息分析《一》

    以前我开过一些帖子,我们内部也做过一些讨论,我们从张小龙的碎屏图中 ,发现了重要讯息: 1:微信支付将成为重要场景: 2:这些应用与春节关系不小,很多应用在春节时,有重要的场景开启可能性: 3:春节是 ...

  3. winform程序捕获全局异常,对错误信息写入日志并弹窗

    使用场景:在winform程序中如果没对方法进行try catch操作,若方法内出错,则整个程序报错并退出,如下图 如果程序已在客户手中,若没对错误的详细信息进行拍照,我们则不知道错误原因是什么.我们 ...

  4. 使用GDB 追踪依赖poco的so程序,core dump文件分析.

    前言 在windows 下 系统核心态程序蓝屏,会产生dump文件. 用户级程序在设置后,程序崩溃也会产生dump文件.以方便开发者用windbg进行分析. so,linux 系统也有一套这样的东东- ...

  5. .NET跨平台:在Mac上跟着错误信息一步一步手写ASP.NET 5程序

    今天坐高铁时尝试了一种学习ASP.NET 5的笨方法,从空文件夹开始,根据运行dnx . kestrel命令的错误信息,一步一步写代码,直至将一个最简单的ASP.NET程序运行起来. 尝试的具体步骤如 ...

  6. oracle 12541,12560,00511无监听程序, 协议适配器错误问题分析及解决方案

    oracle 12541,12560,00511无监听程序, 协议适配器错误问题分析及解决方案   问题描述: 1. lsnrctl start.stop.非常慢,出现卡顿现象: 2. 执行lsnrc ...

  7. Asp.net 程序部署问题——在应用程序级别之外使用注册为 allowDefinition='MachineToApplicati错误信息

    [转]在应用程序级别之外使用注册为 allowDefinition='MachineToApplicati 错误信息: ======================================== ...

  8. 【转】正确理解PHP程序编译时的错误信息

    我们编写程序时,无论怎样小心谨慎,犯错总是在所难免的.这些错误通常会迷惑PHP编译器.如果开发人员无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧. 编译PHP脚本时, ...

  9. linux驱动调试--段错误之oops信息分析

    linux驱动调试--段错误之oops信息分析 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29401328&id= ...

随机推荐

  1. 【前端】Require.js使用方法总结

    一.为什么要使用require.js 首先一个页面如果在加载多个js文件的时候,浏览器会停止网页渲染,加载文件越多,网页失去响应的时间就会越长:其次,由于js文件之间存在依赖关系,因此必须严格保证加载 ...

  2. Mysql隐式类型转换原则

    MySQL 的隐式类型转换原则: - 两个参数至少有一个是 NULL 时,比较的结果也是 NULL,例外是使用 <=> 对两个 NULL 做比较时会返回 1,这两种情况都不需要做类型转换 ...

  3. 动态主机配置协议DHCP

    一.什么是DHCP DHCP,动态主机配置协议,提供一种称为“即插即用连网”的机制,允许一台计算机加入新的网络和获取IP地址而不用手工配置. 二.DHCP工作原理和工作流程 DHCP服务器被动打开UD ...

  4. LeetCode 11. Container With Most Water (装最多水的容器)

    Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai).  ...

  5. Ubuntu远程登陆、SSH图形界面、WOL远程唤醒

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 实现目标:通过路由器配置路由路径,将拨号获取的公网IP地址指向局域网Ubuntu服务器.家里有 ...

  6. JDBC 连接数据库的步骤

    1.JDBC (JAVA DATABASE CONNECTION) (Java 数据库 连接)2.JAVA 面向对象的编程语言 (汉语) || || 标准(接口)---->jar包(mysql- ...

  7. Strtus2框架笔记

    Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架. Struts2引入了几个新的框架特性:从逻辑中分 ...

  8. windows 上rsync客户端使用方法

    1.1 获取 windows上实现rsync的软件(cwRsync) cwRsync是Windows 客户端GUI的一个包含Rsync的包装.您可以使用cwRsync快速远程文件备份和同步. 1.1. ...

  9. .NET项目从CI到CD-Jenkins_Pipeline的应用

    一.罗里吧嗦 最近迁移了服务器,顺道完善下服役了一两年的Jenkins服务,主要是把Slave搭建起来,还有等等.本文只是我对Jenkins Pipeline的一些自己的理解与应用,欢迎指出错误,欢迎 ...

  10. 微信公众平台快速开发框架 For Core 2.0 beta –JCSoft.WX.Core 5.2.0 beta发布

    写在前面 最近比较忙,都没有好好维护博客,今天拿个半成品来交代吧. 记不清上次关于微信公众号快速开发框架(简称JCWX)的更新是什么时候了,自从更新到支持.Net Framework 4.0以后基本上 ...