- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么 MS 最初决定维护这两个独立的核心库?也许他们考虑到了一些可扩展性问题,但现在我从未见过任何类型的应用程序不需要两者。有人有这方面的内幕消息吗?这并不重要,但多年来一直在我的脑海里。
PS。我知道这两个库中有什么,我知道区别 - 我是 Reflector 的忠实粉丝:) 只是想知道两者的分离有什么实际用途。最佳答案
我在 CLR/BCL 团队工作,刚刚回复了您的电子邮件。粘贴如下:
Jared's answer on Stack Overflow is right on. mscorlib.dll is tightly bound to the CLR for the reasons he mentions. Note that mscorlib.dll itself doesn't contain any native code (as Scott suggests), but there are many places where it needs to call directly into the CLR. As such, the CLR and mscorlib must be versioned together.
System.dll on the other hand is not tightly bound to the CLR (it doesn't require any calls into the runtime). We consider System.dll to be at a higher layer than mscorlib.dll. Having these assemblies in two separate layers allows for more flexibility, making it easier to version System.dll separately from the CLR/mscorlib.dll version (if we wanted to do so). We could, in theory, make changes and add functionality to System.dll without revving the CLR/mscorlib version. The separation also makes it easier to manage dependency rules between components in these different layers.
As Scott mentions, it does seem like there's a lot of "optional" stuff in mscorlib. This is mainly for historical reasons and because some things are just needed by other things. For example, there's no technical reason why System.IO.IsolatedStorage needs to be in mscorlib, but that's just where it happened to be added in 1.0, before we really thought about such versioning/layering concerns. Also, List is in mscorlib because other code in mscorlib has a need for a basic list collection.
Long term we'd like to reduce the amount of "optional" stuff in mscorlib as much as possible. Either by pushing stuff out of mscorlib or creating a new, more core, assembly that just contains the bare minimum necessary types (e.g. System.Object, System.Int32, etc.) to make managed code work. This will give us the flexibility to add new innovations to the "optional" stuff, and make it easier to create different .NET Framework SKUs (e.g. the .NET Client Profile, Silverlight, etc.), without having to rev the runtime.
希望这会有所帮助!
谢谢,贾斯汀
关于.net - mscorlib.dll 和 System.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/402582/
我正在 VS2012 中运行我的应用程序,但遇到运行时错误; 当我查看“原始位置”时,我看到了 mscorlib.dll,但没有看到 mscorlib.pdb。 为什么会发生这种情况以及如何解决它?
我正在尝试将 Silverlight 支持添加到我最喜欢的编程语言 Nemerle。 Nemerle ,在编译过程中,主要分两步通过反射加载所有类型 1-) 使用 Assembly.LoadFrom
我最近正在调查一个构建失败,看到一条关于程序集之间冲突的警告。我深入挖掘,MSBuild 告诉我: There was a conflict between "mscorlib, Version=4.
我们正在使用 Razor 语法开发 Html 模板引擎,将 html 模板转换为 scrip# 代码。 当我们在 ScriptSharp 项目中添加 cshtml 文件时,visual studio
发现了 WCF 并因此开始探索它。这是一个 C# 控制台应用程序。代码工作正常,除非我尝试退出。如果我输入错误类型的数量,它会检测到(捕获),通知我输入无效并将我送回菜单提示。这很好而且花花公子,直到
我想将数据读入 RSAParameters 结构 ( RSAParameters ) 并检查了两次,确保数据正确。但是,我仍然收到错误“无效数据”异常: bei System.Security.
这个问题在这里已经有了答案: What does 'Cor' stand for? (2 个答案) 关闭 5 年前。 mscorlib 绝对是 .net 基类库之一,C# 中的每个程序都依赖于它,但
我在尝试编辑表格时遇到错误。请帮忙 ] 1 最佳答案 将我的 sql server 升级到 2014。问题是在 sql server 版本中未匹配。 关于sql-server - 调用目标抛出异常 (
循环时出现此错误 An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll
我尝试重新启动远程 SQL 服务器(2012 full),但收到此错误: Unable to start service MSSQLSERVER on server (mscorlib) 每次我尝试时
有些事情我无法理解。我无法阅读类型引用: Assembly mscorlib = Assembly.Load("mscorlib"); // it DOES exist, returns type r
我正在研究 MSCoreLib,发现了一些有趣的东西。 我什至不知道它是如何工作的。 (引用 http://referencesource.microsoft.com/#mscorlib/system
我想给 mscorlib 添加一些方法。例如: 字符串abc; abc.IsNumeric() 我希望能解释我的问题。 最佳答案 您不能向 mscorlib 添加方法,但是您可以使用扩展方法,使它们看
我尝试为 Windows Phone Silverlight 运行单元测试。当抛出异常时,我不断收到下一个异常而不是真正的异常(例如,ParseException)。我认为这与它所要求的文化有关。 留
在混淆我的 WPF C# 应用程序时,它显示异常说明 Error occurred while obfuscation: System.IO.FileNotFoundException - Syste
大家好,我有一个 ASP.NET 网站项目,出于某种原因坚持引用 mscorlib 1.0.5 和 mscorlib 2.0,但我不明白为什么。 我已经使用 NDepend 分析了所有引用的 DLL,
我正在创建一个 COM 接口(interface),它应该允许在 Visual Basic 脚本中使用 For Each 和在 C++ 中使用 IEnumVariant。问题是我不希望 C++ 客户端
我有 Delphi 应用程序 (hostproject.exe),我想通过注册免费技术来使用 .net com 对象 (NetSide.dll)。 当应用程序启动时,显示并排配置错误和 sxtrace
我在我的电脑上安装了第 3 方程序。我在 ildasm.exe 中打开了这个程序附带的 .dll 之一并检查了 list : .assembly extern mscorlib { .publi
我有一个第三方库,它提供了一个 System.Collections.Generic.IReadOnlyCollection 类型,用于与 .NET 4.0 应用程序兼容。但是,如果您在 .NET 4
我是一名优秀的程序员,十分优秀!