2011-12-28 72 views
9

明顯的選擇是「CLR version 2.0 revision 3」,但不幸的是沒有這樣的事情。最接近我可以來到一個明確的名單是wikipedia,但使用主要/次要編號系統。「CLR20r3」代表什麼? (什麼版本的clr是它)

這是因爲我有一個客戶試圖運行我的.net4應用程序,但它一直崩潰與clr20r3 MissingMethodException on XmlReader.Dispose()結果.net4安裝失敗,他們的計算機上,因此它didn沒有.net 4 system.xml.dll。

但是,當解決這個問題時,我試圖找出clr20r3的含義(IIRC,.net 3也使用了CLR2)。

任何人都能找到解決這個問題的主角?搜索谷歌提出了很多解決應用程序崩潰問題的人,但沒有關於它究竟是什麼版本的CLR的信息。

感謝

+0

如果未安裝正確的VC++運行庫,則可能會出現相同的錯誤。 – rfmodulator 2011-12-28 10:47:17

回答

9

這是一個字符串,烘焙到c:\ windows \ system32 \ wer.dll中,Windows錯誤報告支持dll。它是硬編碼的,所以你需要和程序員談談,才能真正知道它應該是什麼意思。 「公共語言運行時版本2.0修訂3」是一個很好的猜測,否則沒有好的提示「修訂3」應該是什麼意思。可能是微軟內部的設計文檔。

您可以從this answer獲取有關P1到P10值的更多信息。只要確保它從來沒有得到這麼多,在WER抓住崩潰的時候,太多有用的調試信息就會丟失。編寫AppDomain.CurrentDomain.UnhandledException的事件處理程序,並記錄或顯示e.ExceptionObject.ToString()的值。 Environment.Exit()以防止WER嗅探它。

+0

非常詳細,謝謝 – JasonS 2011-12-29 01:58:37

5

我想,如果clr20r3曾經主張CLR(或其一個次要發行)的特定版本,它不下去了。以未捕獲的異常或Environment.FailFast()結尾的.NET 4.0(CLR 4.0)進程會在事件數據中生成相同的標記,在Windows事件查看器中可見。

今天,我猜想,它只是CLR的Windows錯誤報告中使用的事件類型。

+0

聽起來很合理,如果沒有更好的表示,我會將它標記爲明天的答案:) – JasonS 2011-12-28 12:38:51