习惯性伸手党区 【已解决】伸下手,谁对 VS2010 下的 C# 开发熟悉的进来看看 T_T

water · February 12, 2015 · Last by water replied at February 13, 2015 · 1713 hits

最近在学习 C#,同时调试一些 Appium 的封装代码,我使用的是建立一个 Console Application 来调用我封装好的 DLL 文件。其中有一个是网上找的 dll 工具,用来识别图形验证码的 Reconizer.dll,这个 dll 其他人调用的时候没问题,到我这里一调用,就会 Console 直接闪退,完全来不及看报的是什么错误。请问 C# 高手们,对于这种情况我该如何去定位 Console 闪退的原因捏?有没有什么好的方法推荐下 T_T

我用 Try Catch 也不行……STO

Console 闪退关闭以后,控制台的日志如下:

'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
The thread 'vshost.NotifyLoad' (0x1304) has exited with code 0 (0x0).
The thread '<No Name>' (0xf08) has exited with code 0 (0x0).
The thread '<No Name>' (0x1708) has exited with code 0 (0x0).
The thread 'vshost.LoadReference' (0x51c) has exited with code 0 (0x0).
'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\80374214\Documents\Visual Studio 2010\Projects\ConsoleApplication4\ConsoleApplication4\bin\Debug\ConsoleApplication4.exe', Symbols loaded.
'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\80374214\Documents\Visual Studio 2010\Projects\ConsoleApplication4\ConsoleApplication4\bin\Debug\WebDriver.dll'
'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\80374214\Documents\Visual Studio 2010\Projects\ConsoleApplication4\ConsoleApplication4\bin\Debug\appium-dotnet-driver.dll'
'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\80374214\Documents\Visual Studio 2010\Projects\ConsoleApplication4\ConsoleApplication4\bin\Debug\CharReconizer.dll'
'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ComponentModel.DataAnnotations\v4.0_4.0.0.0__31bf3856ad364e35\System.ComponentModel.DataAnnotations.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\80374214\Documents\Visual Studio 2010\Projects\ConsoleApplication4\ConsoleApplication4\bin\Debug\tessnet2_32.dll'
'ConsoleApplication4.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\msvcm90.dll'
The program '[3688] ConsoleApplication4.vshost.exe: Managed (v4.0.30319)' has exited with code 1 (0x1).
The program '[3688] ConsoleApplication4.vshost.exe: Program Trace' has exited with code 0 (0x0).

解决办法:
我用 cmd 调用编译好的.exe 文件,这样子 Console 退出以后我也可以看到它的信息啦!哥是不是很聪明_______^
终于看到了错误,好坑爹~:
Unable to load unicharset file D:\Program Files\Tesseract-OCR\eng.unicharset
上网下载 tesseract-2.00.eng.tar.gz,把这里面的文件都复制到 D:\Program Files\Tesseract-OCR 目录下

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 14 条回复 时间 点赞

你工程 zip 发我 qq,我帮你看一下。

#1 楼 @lucasluo 非常感谢了 ……STO,在公司代码发不出去的。算了我不再调试它了,因为其他人机器上运行是没问题的,可能是我机器上的环境问题。

@weamylady 新建的 Console Application 能运行吗?

@weamylady 这个更倾向于程序集,CLR,或者编译 configuration 的问题。需要你贴出更详细的信息。另外,2010 的 console application 默认创建的是.NET Client Framework,你右键工程名字,然后 property,看一下编译的.NET,是不是.NET Framework?把.NET Client 改成.NET Framework。

解决了吗?

#5 楼 @lucasluo 我们五点半下班就没看到你的回复哦…… 刚才试了下把 Client 改成.NET Framework,然后调试了一次依然是这个问题。Console 前面运行是正常的,一调用那个 dll 文件就断掉了,一个错误提示一闪而过貌似是什么"Unable to load xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"。后面实在是看不清楚 STO……
暂时先不管它了,多谢大神啦>_____<

@weamylady 额,我需要看你的工程属性,编译配置,你加载的 dll,debug/release 才能确认,没能帮上啥忙抱歉了。

#7 楼 @lucasluo 没事儿,调不过就不管它了___^ 下次有问题再找你哦 - 3- 么么哒!

#7 楼 @lucasluo 哈哈哈!找到方法了! 我用 cmd 调用编译好的.exe 文件,这样子 Console 退出以后我也可以看到它的信息啦!哥是不是很聪明_______^
终于看到了错误,好坑爹~:

Unable to load unicharset file D:\Program Files\Tesseract-OCR\\eng.unicharset

@weamylady vs 里 ctrl+F5 就可以了

water #11 · February 13, 2015 Author

#10 楼 @lucasluo 额……

能把解决方法同时附到主内容里面吗?这样方便后面的人快速参考。

@weamylady 别和我说你是直接把你的 exe 拖到 cmd console 里面。。 那样子肯定可以 也可以用钩子@chenhengjie123

water #14 · April 24, 2015 Author

#13 楼 @doria 只是为了看 log,程序调用时用 dll 里面的方法。

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up