今天做项目,需要用C#引用C++的链接库文件,但是在调试的时候会报错这个错误。
运行SxsTrace.exe
- 以管理员用户登陆,启动cmd;
- 执行命令:SxsTrace Trace -logfile:SxsTrace.etl,启动跟踪;
- 执行目标程序,弹出错误对话框;
- 关闭对话框后,回到命令行,点击回车;
- 继续执行命令:SxsTrace Parse -logfile:SxsTrace.etl -outfile:SxsTrace.txt,解析跟踪信息为文本;
- 打开SxsTrace.txt就可以看到相关跟踪信息。
在SxsTrace.txt中看到:
错误: 无法解析参考 Microsoft.VC90.DebugCRT,processorArchitecture=x86
,publicKeyToken=1fc8b3b9a1e18e3b
,type=win32
,version=9.0.21022.8
。
错误: 生成激活上下文失败。
结束生成激活上下文
由此可以知道 原来引用的C++链接库需要vc9的运行时文件
- 安装Visual studio 2008 里面的VC_x86Runtime.exe
- 在C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugCRT目录下拷贝Microsoft.VC90.DebugCRT.manifest、msvcm90d.dll、msvcp90d.dll、msvcr90d.dll这四个文件放到链接库相同目录下就可以了