02、NetCore2.0优化之Nuget包
在NetCore2.0中的包是如何管理的?如何存储的?微软做了哪些优化工作?
------------------------------------------------------------------------------------------------------------
写在前面:这是一个系列的文章,总目录请移步:NetCore2.0技术文章目录
------------------------------------------------------------------------------------------------------------
一、历史问题
在.NetCore 2.0之前,我们开发.Net应用程序,引用的包分为Framework包和第三方包两种,其中第三方类库文件都要随着应用一起存储,文件越多,越占存储空间。随着.NetCore 2.0出现,微软统一使用Nuget来管理Framework包和第三方包,不再区别对待;还进行了一定范围内的优化。
二、.优化的运行时包仓
对于应用程序引用的Framework包,微软提供了运行时包仓(runtime package store),所有应用程序共用运行时包仓,我们在发布应用程序的时候不需要关心,只要关注第三方包即可。
运行时包仓路径一般为:
- linux:/usr/local/share/dotnet/store
- windows: C:/Program Files/dotnet/store
三、优化的第三方包仓
其中第三方包也不是每个App下载一份,而是统一存储在一个文件下:
- C:\Users\Administrator\.nuget\package
只有发布的时候才会随App一起部署。

四、元包
元包就是一个 NuGet 包约定,描述了一组意义相关的包。 开发团队利用依赖项来描述这一组包。 他们通过这一组包来描述一个框架,然后有选择地发布出去。使用 ASP.NET Core 2.0 只需要安装一个 NuGet 元包 —— Microsoft.AspNetCore.All,省去了一个个添加包的步骤;发布时会自动排除没有用到的包。

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 为DeepSeek添加本地知识库
· 精选4款基于.NET开源、功能强大的通讯调试工具
· DeepSeek智能编程
· 大模型工具KTransformer的安装
· [计算机/硬件/GPU] 显卡