2011-12-28 38 views
9

sự lựa chọn rõ ràng sẽ là "CLR phiên bản 2.0 sửa đổi 3" nhưng đáng tiếc là không có một điều như vậy. Tôi gần nhất có thể đến một danh sách dứt khoát là wikipedia, nhưng sử dụng các hệ thống đánh số chính/nhỏ."CLR20r3" có nghĩa là gì? (Phiên bản của clr là nó)

Lý do điều này xảy ra, là bởi vì tôi đã có một khách hàng đang cố gắng chạy ứng dụng .net4 của tôi, nhưng nó vẫn gặp sự cố với clr20r3 MissingMethodException trên XmlReader.Dispose() tắt cài đặt .net4 không thành công trên máy tính của họ. không có .net 4 system.xml.dll.

Nhưng khi khắc phục sự cố này, tôi đã cố gắng tìm hiểu ý nghĩa của clr20r3 (IIRC, .net 3 cũng sử dụng CLR2).

bất kỳ ai có chì để tìm hiểu điều này? tìm kiếm google đi kèm với rất nhiều người xử lý sự cố ứng dụng treo, nhưng không có thông tin về những gì phiên bản của CLR nó thực sự là.

nhờ

+0

Bạn có thể gặp lỗi tương tự nếu thời gian chạy VC++ chính xác chưa được cài đặt. – rfmodulator

Trả lời

9

Đó là chuỗi được lưu vào c: \ windows \ system32 \ wer.dll, tệp hỗ trợ Báo cáo lỗi Windows. Nó được mã hóa cứng vì vậy bạn cần phải nói chuyện với lập trình viên để thực sự biết nó có ý nghĩa gì. "Common Language Runtime phiên bản 2.0 sửa đổi 3" là một tốt đoán như bất kỳ nếu không có gợi ý tốt những gì "sửa đổi 3" là nghĩa vụ phải có nghĩa là. Có lẽ là một tài liệu thiết kế nội bộ bên trong Microsoft.

Bạn có thể nhận thêm thông tin về giá trị P1 đến P10 từ this answer. Chỉ cần chắc chắn rằng nó không bao giờ được điều này đến nay, quá nhiều thông tin gỡ lỗi hữu ích bị mất bởi thời gian WER được bàn tay của mình vào vụ tai nạn. Viết một trình xử lý sự kiện cho AppDomain.CurrentDomain.UnhandledException và đăng nhập hoặc hiển thị giá trị của e.ExceptionObject.ToString(). Environment.Exit() để ngăn chặn WER khỏi bị đánh hơi vào nó.

+0

chi tiết tuyệt vời, cảm ơn – JasonS

5

Tôi đoán nếu clr20r3 bao giờ đứng cho một phiên bản đặc biệt của CLR (hoặc một thông cáo nhỏ đó) nó không nữa. Một quá trình .NET 4.0 (CLR 4.0) kết thúc bằng một ngoại lệ không bị bắt hoặc Environment.FailFast() tạo cùng một mã thông báo trong dữ liệu sự kiện, hiển thị trong trình xem sự kiện cửa sổ.

Hôm nay, tôi đoán, đó chỉ là loại sự kiện được sử dụng trong Báo cáo lỗi Windows cho CLR như vậy.

+0

có vẻ hợp lý, tôi sẽ đánh dấu câu trả lời này là câu trả lời vào ngày mai nếu không có chương trình nào tốt hơn :) – JasonS