【问题标题】:What does mscorlib stand for? [duplicate]mscorlib 代表什么? [复制]
【发布时间】:2013-02-25 07:25:18
【问题描述】:

mscorlib 绝对是 .net 基类库之一,C# 中的每个程序都依赖它,但它代表什么?

C# Language Specification 的 ECMA 标准中,该词被提及 4 次,但均未提及其含义。

【问题讨论】:

  • 猜测微软核心库...

标签: c# .net


【解决方案1】:

Microsoft Common Object Runtime 图书馆

http://www.danielmoth.com/Blog/mscorlibdll.aspxWhat does 'Cor' stand for?

【讨论】:

  • 实际上“ms”现在代表“多语言标准”,因为某事-某事政治
  • 它成为了 ECMA 标准,因此不能以标准化委员会的单个成员命名。
  • 差不多。它是M多语言S标准C普通Object RuntimeL库参见:C# 6.0 in a Nutshell - The Definitive Reference(第 199 页)
【解决方案2】:

Microsoft 核心库,即它们是一切的核心。

您可能更喜欢“按摩”的解释:

“当微软第一次开始开发 .NET Framework 时,MSCorLib.dll 是 Microsoft 公共对象运行时库的首字母缩写词。一旦 ECMA 开始 标准化CLR和部分FCL,MSCorLib.dll正式成为 多语言标准公共对象运行时库的首字母缩写词。”

来自http://weblogs.asp.net/mreynolds/archive/2004/01/31/65551.aspx

在我个人的记忆中,1999 年左右,.Net 被称为“COOL”,所以我对这个派生有点怀疑。我从来没有听说过它叫做“COR”,对于一个以英语为母语的人来说,这是一个听起来很傻的名字。

【讨论】:

  • 我个人会用单数(“图书馆”)来表达它,但这确实描述了意图
  • 关于 COOL 的说明 - 它代表“C-like Object Oriented Language”,是 C#(不是 .NET 框架)的工作名称;由于商标原因,他们不能使用 COOL 这个名称,因此改为“C#”。
  • 我实际上认为这应该是公认的答案,因为它不仅首先发布,而且也是最正确的。 Microsoft 重新命名了 mscorlib,因此“ms”现在代表“多语言标准”而不是“Microsoft”。除了原始名称之外,这是唯一实际给出正确当前名称的答案。如需更官方的来源,请参阅microsoft.com/mspress/books/index/5353a.aspx,这表明微软出版社出版的一本书早在 2002 年就将其作为正式名称。
  • “我从来没有听说过它叫“COR”,对于以英语为母语的人来说,这是一个听起来很傻的名字。” - 你在这里说什么? COR 代表公共对象运行时对我来说似乎是合理的,
  • COOL这个名字确实是史蒂夫鲍尔默和他在高尔夫球场的同伴有一天顿悟后重命名为C#的语言,主要是因为常见的英文单词“cool”不能注册商标.在重命名为 csc.exe 之前,编译器是coolc.exe。无论如何,COOL 不是 .NET 的名称,它是后来成为 C# 编程语言的名称,而 COR 是通用对象运行时。
【解决方案3】:

它代表

微软的通用对象运行库

它是框架公共库的主要程序集。

它包含以下命名空间:

 System
 System.Collections
 System.Configuration.Assemblies
 System.Diagnostics
 System.Diagnostics.SymbolStore
 System.Globalization
 System.IO
 System.IO.IsolatedStorage
 System.Reflection
 System.Reflection.Emit
 System.Resources
 System.Runtime.CompilerServices
 System.Runtime.InteropServices
 System.Runtime.InteropServices.Expando
 System.Runtime.Remoting
 System.Runtime.Remoting.Activation
 System.Runtime.Remoting.Channels
 System.Runtime.Remoting.Contexts
 System.Runtime.Remoting.Lifetime
 System.Runtime.Remoting.Messaging
 System.Runtime.Remoting.Metadata
 System.Runtime.Remoting.Metadata.W3cXsd2001
 System.Runtime.Remoting.Proxies
 System.Runtime.Remoting.Services
 System.Runtime.Serialization
 System.Runtime.Serialization.Formatters
 System.Runtime.Serialization.Formatters.Binary
 System.Security
 System.Security.Cryptography
 System.Security.Cryptography.X509Certificates
 System.Security.Permissions
 System.Security.Policy
 System.Security.Principal
 System.Text
 System.Threading
 Microsoft.Win32 

有关 MSCorlib 的有趣信息:

  • .NET 2.0 程序集将引用和使用 2.0 mscorlib。 .NET 1.1 程序集将引用 1.1 mscorlib 但将使用 运行时的 2.0 mscorlib(由于硬编码版本重定向 运行时本身)
  • 在 GAC 中只有一个版本的 mscorlib,你找不到 1.1 GAC 上的版本,即使您的系统上安装了 1.1 框架 机器。如果有人能解释为什么MSCorlib 2.0就好了 单独在 GAC 中,而 1.x 版本位于框架文件夹中
  • 是否可以强制由 通过在您的应用程序/web.config 中进行配置设置来应用程序?你 将无法通过设置中的设置选择 CLR 版本 配置文件——此时,CLR 已经在运行,并且 每个进程只能有一个。在 CLR 之后立即 选择了适合该 CLR 加载的 MSCorlib。

【讨论】:

  • “它包含以下命名空间” - 这在很大程度上取决于您使用的版本(即哪个目标平台)。拥有很多东西并不是必须
  • “mscorlib”是多语言标准通用对象运行时库的缩写(C# 6.0 in a Nutshell - The Definitive Reference (page 199))
猜你喜欢
  • 2016-05-02
  • 2011-07-10
  • 2016-12-25
  • 2010-11-29
  • 2013-12-08
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
相关资源
最近更新 更多