.net “CLR20r3”代表什么?(clr是什么版本)

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8654605/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-03 16:08:23  来源:igfitidea点击:

what does "CLR20r3" stand for? (what version of the clr is it)

.netclrcrash-reports

提问by JasonS

the obvious choice would be "CLR version 2.0 revision 3" but unfortunatly there is no such a thing. The closest I can come to a definitive list is wikipedia, but that uses major/minor numbering systems.

显而易见的选择是“CLR 2.0 修订版 3”,但不幸的是没有这样的东西。我最接近最终列表的是wikipedia,但它使用主要/次要编号系统。

The reason this came up, is because I had a customer trying to run my .net4 app, but it kept crashing with clr20r3 MissingMethodException on XmlReader.Dispose() turns out the .net4 install failed on their computer so it didn't have the .net 4 system.xml.dll.

出现这种情况的原因是因为我有一个客户试图运行我的 .net4 应用程序,但它不断崩溃,并在 XmlReader.Dispose() 上出现 clr20r3 MissingMethodException ,结果证明 .net4 在他们的计算机上安装失败,因此它没有.net 4 system.xml.dll。

But when troubleshooting this, I was trying to find out what clr20r3 meant (IIRC, .net 3 used the CLR2 also).

但是在对此进行故障排除时,我试图找出 clr20r3 的含义(IIRC,.net 3 也使用了 CLR2)。

anyone got a lead for figuring this out? searching google comes up with a lot of people troubleshooting application crashes, but no info on what version of the CLR it really is.

任何人都有解决这个问题的线索?搜索 google 提出了很多人对应用程序崩溃进行故障排除的信息,但没有关于它真正是什么版本的 CLR 的信息。

thanks

谢谢

采纳答案by Hans Passant

That's a string that's baked into c:\windows\system32\wer.dll, the Windows Error Reporting support dll. It is hard-coded so you'd need to talk to the programmer to really know what it was supposed to mean. "Common Language Runtime version 2.0 revision 3" is a good a guess as any with otherwise no good hint what "revision 3" is supposed to mean. Probably an internal design document inside Microsoft.

这是一个嵌入到 c:\windows\system32\wer.dll(Windows 错误报告支持 dll)中的字符串。它是硬编码的,因此您需要与程序员交谈才能真正了解它的含义。“通用语言运行时版本 2.0 修订版 3”是一个很好的猜测,否则没有很好的暗示“修订版 3”应该是什么意思。可能是 Microsoft 内部的内部设计文档。

You can get more info about the P1 through P10 values from this answer. Just make sure that it never gets this far, too much useful debugging info is lost by the time WER gets its hands on the crash. Write an event handler for AppDomain.CurrentDomain.UnhandledException and log or display the value of e.ExceptionObject.ToString(). Environment.Exit() to prevent WER from getting a sniff at it.

您可以从此答案中获得有关 P1 到 P10 值的更多信息。只要确保它永远不会走得太远,当 WER 处理崩溃时,会丢失太多有用的调试信息。为 AppDomain.CurrentDomain.UnhandledException 编写事件处理程序并记录或显示 e.ExceptionObject.ToString() 的值。Environment.Exit() 以防止 WER 对其进行嗅探。

回答by Christian.K

I guess if clr20r3ever stood for a particular version of the CLR (or a minor release thereof) it doesn't any longer. A .NET 4.0 (CLR 4.0) process that ends with an uncaught exception or Environment.FailFast()produces the same token in the event data, visible in the windows event viewer.

我想如果clr20r3曾经代表 CLR 的特定版本(或其次要版本),它就不再存在了。.NET 4.0 (CLR 4.0) 进程以未捕获的异常结束或Environment.FailFast()在事件数据中生成相同的标记,在 Windows 事件查看器中可见。

Today, I would guess, it is just the event type used in Windows Error Reporting for the CLR as such.

今天,我猜想,这只是 CLR 的 Windows 错误报告中使用的事件类型。