簡體   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