这里的说明,基本就是学习了别人的文章,自己做了个备份
asp.net core中,针对项目中的包管理,做了很多的性能优化,如果项目中通过Nuget引用了包,但是在项目目录找不到了package文件,而且生成目录也没有对应的应用的dll生成,那项目是如何运行以及引用nuget包,这些包都在哪里?
1.对于应用程序引用的Framework包,微软提供了运行时包仓(
runtime package store),所有应用程序共用运行时包仓,我们在发布应用程序的时候不需要关心,只要关注第三方包即可。
运行时包仓路径一般为:
- linux:/usr/local/share/dotnet/store
- windows: C:/Program Files/dotnet/store
2.其中第三方包也不是每个App下载一份,而是统一存储在一个文件下:
![](https://i-blog.csdnimg.cn/blog_migrate/965438a9cc11ec991f8efb47fe38ec93.png)
只有发布的时候才会随App一起部署。
![](https://i-blog.csdnimg.cn/blog_migrate/9f31afeb9f82f4dce9bd8bdfaaa3fd15.png)
3.
元包就是一个 NuGet 包约定,描述了一组意义相关的包。 开发团队利用依赖项来描述这一组包。 他们通过这一组包来描述一个框架,然后有选择地发布出去。使用
ASP.NET Core 2.0 只需要安装一个 NuGet 元包 —— Microsoft.AspNetCore.All,省去了一个个添加包的步骤;发布时会自动排除没有用到的包。
![](https://i-blog.csdnimg.cn/blog_migrate/0f23e58a912c8d2c802ac70dbfd76caa.png)