繁体   English   中英

.NET Standard NuGet 包是如何实现的?

[英]How are .NET Standard NuGet packages implemented?

据我了解,.NET Standard 是一种规范,而不是一种实现。 换句话说,它是一个 API 列表,它们由不同的 .NET 风格实现,例如 .NET Framework、.NET Core、Mono 等。

据我了解,NuGet 包包含特定 .NET 风格的实现。 因此 NuGut 包可能包含 .NET Framework 和 .NET Core 的 DLL。

那么当为 .NET Standard 创建 NuGet 包时会发生什么? 它包含什么样的DLL?

我认为 .Net Standard 是一个抽象层,它定义了所有 .Net 风格中最常见的功能。

.Net Standard 程序集的用例是为应用程序创建业务逻辑,然后在 ASP.Net Core Web 应用程序中构建 UI,在 WPF 应用程序中构建桌面 UI,这两个 UI 应用程序都可以引用 .Net直接标准库。

Nuget 包不必是任何特定类型的程序集。 本文可以帮助您开始创建 Nuget 包。

PS 来自 Alik 的链接很好地描述了这个问题的 .Net Framework 方面,但以最简单的形式,如果您在 .Net Standard 程序集中编写共享代码,则不必为不同的 .Net Framework 重新编写它。使用它的网络平台。

那么当为 .NET Standard 创建 NuGet 包时会发生什么? 它包含什么样的DLL? 说 .NET Standard 是一个规范而不是一个实现是不完全正确的。 最终结果是正确的,但不是你如何到达那里。 这是我发现的:

.NET Framework 在 mscorlib.dll 中定义主要类。

.NET Core 在 System.Runtime.dll 中定义主要类

.NET Standard 在 netstandard.dll 中定义主要类 因此,当您构建 .NET Standard 项目时,您正在引用 netstandard.dll

.NET Framework 和 .NET Core 包含它们自己的 netstandard.dll 版本,它替换了 .NET Standard 项目中的版本。 替换 netstandard.dll 使用类型转发将主要类指向 mscorlib.dll 或 System.Runtime.dll 中的实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM