QQ交流群:110826636

C#程序双击运行之后,界面不显示,但是在任务管理器有进程(一个winform找bug之旅)

最近客户端又出了奇葩事情:http://q.cnblogs.com/q/43038/ 如这篇博问一样。我的一个客户的电脑上程序打开了,进程也有了,就是界面窗体出不来!!!

我是win7是开发机,三四台测试虚拟机,都是xp的。都可以完美运行。但是客户那么就是出现了那么多问题,谁叫着软件用户多呢,有一万多的用户。然后就会有一万多的奇葩电脑,50%的xp,50%的win7。win7自当是没有事情,问题基本都是xp引起的。真的是xp引起的血案。一开始的常规思路是客户机的运行库是否按照正确,结果是2.0的程序,安装了3.5还是运行失败。说明不是.net的问题。接着开始找第三方dll的问题,结果是都已经初始化成功,切全局的不会保存(有全局的log记录)。顿时觉得很无解。之后开始二分法打log。先找初始化的问题。Program.cs的log打完,发现在Application.Run()是运行了,那就是但是方法之后却是没有跑下去,那就是窗体的构造函数里面打log,发现InitializeComponent()方法之后没有log出现,而之前却是有log,然后开始看漫长的InitializeComponen初始化文件(大家都知道对于复杂的窗体这个文件不要太长的)。功夫不负有心人,经过漫长的二分法查找,终于定位出是一个字体出现了问题(期间也感谢客户的配合)。原来是我的客户机没有微软雅黑这个字体,导致渲染的时候直接运行不下去,而且也不报错,直接死在哪里。最后直接在客户机上安装微软雅黑字体,得到解决。从出现错误到解决,一个下午过去了。话说这问题也是有趣啊!!!

 

posted @ 2015-09-04 18:17  FourOne  阅读(5273)  评论(8编辑  收藏