2011-12-28 13 views
9

oczywistym wyborem byłby "CLR wersja 2.0 rewizja 3", ale niestety nie ma czegoś takiego. Najbliższe, które mogę znaleźć na liście ostatecznej, jest wikipedia, ale używają systemów numeracji major/minor.co oznacza skrót "CLR20r3"? (jaka to wersja clr)

Powodem tego jest to, że miałem klienta próbującego uruchomić moją aplikację .net4, ale ciągle się zawiesza z clr20r3 MissingMethodException na XmlReader.Dispose() okazało się, że instalacja .net4 nie powiodła się na ich komputerze, więc nie zrobił tego nie ma pliku .net 4 system.xml.dll.

Ale podczas rozwiązywania tego problemu próbowałem dowiedzieć się, co znaczy clr20r3 (IIRC, .net 3 użył również CLR2).

ktoś ma trop, aby to rozgryźć? wyszukując google pojawia się wiele osób rozwiązujących awarie aplikacji, ale nie ma informacji o tym, jaka wersja CLR jest naprawdę.

dzięki

+0

Ten błąd można uzyskać, jeśli prawidłowe środowisko wykonawcze VC++ nie jest zainstalowane. – rfmodulator

Odpowiedz

9

To jest ciąg, który jest upieczony do pliku c: \ windows \ system32 \ wer.dll, dll obsługi błędów systemu Windows. Jest mocno zakodowany, więc musisz porozmawiać z programistą, aby naprawdę wiedzieć, co miał na myśli. "Common Language Runtime wersja 2.0 rewizja 3" to dobre przypuszczenie, że nie ma dobrej wskazówki co do "rewizji 3". Prawdopodobnie wewnętrzny dokument projektowy wewnątrz Microsoft.

Możesz uzyskać więcej informacji o wartościach P1 do P10 z this answer. Po prostu upewnij się, że nigdy nie osiągnie tak daleko, zbyt wiele przydatnych informacji debugowania jest tracone przez czas WER dostaje ręce na wypadek. Napisz moduł obsługi zdarzeń dla AppDomain.CurrentDomain.UnhandledException i zapisz lub wyświetl wartość e.ExceptionObject.ToString(). Environment.Exit(), aby uniemożliwić WER dostrzeżenie tego.

+0

świetny szczegół, dzięki – JasonS

5

myślę, że jeśli kiedykolwiek stanął clr20r3 dla konkretnej wersji CLR (lub jego niewielkim wydaniu) nie dłużej. Proces .NET 4.0 (CLR 4.0), który kończy się nieprzechwyconym wyjątkiem lub Environment.FailFast() tworzy taki sam token w danych zdarzenia, widoczny w przeglądarce zdarzeń systemu Windows.

Dzisiaj, zgaduję, jest to typ zdarzenia wykorzystywany w raportowaniu błędów systemu Windows dla CLR jako takiego.

+0

brzmi rozsądnie, oznaczy to jako odpowiedź jutro, jeśli nic lepszego nie pokazuje :) – JasonS