今天调试一个小东西,在VS里使用C#调用一个dll,这个dll是在vs2008 sp1里编译的,看官方说明,号称理论上只要是vs更高版本都可以使用。
一、
调试的时候遇到一个问题:从它的提示来看,给的信息不足,经过一番折腾,用windows事件查看器才看到更详细的报错。
二、
如何打开windows日志?看下图:
日志提示:
“C:\Users\Administrator\Documents\Visual Studio 2013\Projects\WindowsFormsApp1\WindowsFormsApp1\WindowsFormsApp1\bin\Debug\XtTraderNetApi.dll”的激活上下文生成失败。 找不到从属程序集 Microsoft.VC90.DebugCRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。 请使用 sxstrace.exe 进行详细诊断。
三、
上网搜索,经过分析,发现是缺少了vc++2008(vc90)的运行库。
从微软网站下载该运行库,安装。
再次F5运行程序,如果提示找不到以下文件:Microsoft.VC90.DebugCRT,msvcm90d.dll,msvcp90d.dll,msvcr90d.dll,可从网上下载四个文件,放到工程文件的debug文件夹里面.
网络下载这四个文件的地址:
四、
五、 调dll包出错的总结
1、查看windows日志,看看是什么依赖项出错
2、缺啥补啥