最近客戶端又出了奇葩事情: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初始化文件(大家都知道對於復雜的窗體這個文件不要太長的)。功夫不負有心人,經過漫長的二分法查找,終於定位出是一個字體出現了問題(期間也感謝客戶的配合)。原來是我的客戶機沒有微軟雅黑這個字體,導致渲染的時候直接運行不下去,而且也不報錯,直接死在哪里。最后直接在客戶機上安裝微軟雅黑字體,得到解決。從出現錯誤到解決,一個下午過去了。話說這問題也是有趣啊!!!