想寫這篇文章緣起於公眾號文章里的一條留言:
對於一個現代化的開發平台,建立一種讓開發者創建,分享與使用可復用代碼的機制是十分必要的。這種“可復用代碼”被打包后的文件通常被稱作“包”(package),對於.NET(包括 .NET Core)平台來說這個機制的實現就是NuGet平台。NuGet包的本質是一個以nupkg為后綴的zip壓縮文件(你可以將后綴改為.zip后解壓查看里面的內容),其中包含了編譯后的Dll文件以及其他相關文件。
.NET Core是一個開源的模塊化的Framework,不管是開發web或移動設備都在同一個Framework(.NET Core)下運行,而且 .NET Core也可在不同的操作系統上運行,包括Windows、linux、MacOS,實現了跨平台跨設備。更棒的是.NET Core 在發布程序時不用事先安裝Framework而是通過Nuget下載,這樣在初次部署時就不用安裝一個復雜而龐大Framework,而是按需下載。這種基於Nuget的按需加載鑄就了.NET Core 跨平台。.Net Core 強化了 Nuget 的使用,所有的 .Net Core 組件均有 Nuget 管理,所以有必要探討一下 Nuget。
微軟的官方文檔《包、元包和框架 https://docs.microsoft.com/zh-cn/dotnet/core/packages》明確了.NET Core 是一種由 NuGet 包組成的平台。