想写这篇文章缘起于公众号文章里的一条留言:linux
对于一个现代化的开发平台,创建一种让开发者建立,分享与使用可复用代码的机制是十分必要的。这种“可复用代码”被打包后的文件一般被称做“包”(package),对于.NET(包括 .NET Core)平台来讲这个机制的实现就是NuGet平台。NuGet包的本质是一个以nupkg为后缀的zip压缩文件(你能够将后缀改成.zip后解压查看里面的内容),其中包含了编译后的Dll文件以及其余相关文件。web
.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 包组成的平台。运维