2011-12-28 12 views
9

La opción obvia sería "CLR versión 2.0 revisión 3" pero desafortunadamente no existe tal cosa. Lo más cerca que puedo llegar a una lista definitiva es wikipedia, pero eso usa sistemas de numeración mayor/menor.¿qué significa "CLR20r3"? (¿Qué versión del clr es él?)

La razón por la que esto surgió, es porque tenía un cliente tratando de ejecutar mi aplicación .net4, pero siguió fallando con clr20r3 MissingMethodException en XmlReader.Dispose() resulta que la instalación .net4 falló en su computadora por lo que no funcionaba No tiene el .net 4 system.xml.dll.

Pero al solucionar este problema, estaba tratando de averiguar qué significaba clr20r3 (IIRC, .net 3 también usó CLR2).

¿alguien tiene una pista para descifrar esto? Al buscar en Google aparece mucha gente que soluciona los bloqueos de aplicaciones, pero no hay información sobre qué versión de CLR es en realidad.

gracias

+0

Puede obtener el mismo error si el tiempo de ejecución de VC++ correcto no está instalado. – rfmodulator

Respuesta

9

Esa es una cadena que está integrada en c: \ windows \ system32 \ wer.dll, la DLL de soporte de Windows Error Reporting. Está codificado, por lo que necesitaría hablar con el programador para saber realmente qué se suponía que significaba. "Common Language Runtime versión 2.0 revisión 3" es una buena suposición como cualquiera con lo contrario, no hay una buena pista de lo que se supone que significa la "revisión 3". Probablemente un documento de diseño interno dentro de Microsoft.

Puede obtener más información sobre los valores de P1 a P10 desde this answer. Solo asegúrate de que nunca llegue tan lejos, demasiada información de depuración útil se pierde para cuando WER tenga en sus manos el colapso. Escriba un controlador de eventos para AppDomain.CurrentDomain.UnhandledException y registre o muestre el valor de e.ExceptionObject.ToString(). Environment.Exit() para evitar que WER lo detecte.

+0

gran detalle, gracias – JasonS

5

supongo que si alguna vez se puso clr20r3 para una versión particular de la CLR (o una versión menor del mismo) no lo hace por más tiempo. Un proceso de .NET 4.0 (CLR 4.0) que finaliza con una excepción no detectada o Environment.FailFast() produce el mismo token en los datos de evento, visible en el visor de eventos de Windows.

Hoy en día, supongo que es solo el tipo de evento utilizado en Windows Error Reporting para el CLR como tal.

+0

suena razonable, lo marcaré como respuesta mañana si nada mejor muestra :) – JasonS