ASP.NET?Core通過Microsoft.AspNetCore.App元包簡化程序集引用
Asp.net core下提供默認提供了一些在.net core不能直接使用的庫,如日志、依賴注入、選項、通用主機、EntityFramework等,雖然我們可以通過Nuget的方式手動加載這些包,但這些包大多分得很細,往往會引入許多依賴的相關(guān)的包,造成動不動就引入了七八個dll的情況。雖然對于設(shè)計上來講,包的粒度劃分的細一些本身是更合理的行為,并且對實際的功能也沒有什么影響,但對于很多像我一樣有編程潔癖行為的開發(fā)者來說看著文件夾下一大堆和業(yè)務無關(guān)的dll多多少少有些不爽的。
可能微軟也了解了我們的這一需求,推出了了元包這個概念。 元包就是一個 NuGet 包約定,描述了一組意義相關(guān)的包。 開發(fā)團隊利用依賴項來描述這一組包。 他們通過這一組包來描述一個框架,然后有選擇地發(fā)布出去。以某個框架為目標以及隱式引用元包,這實際上是添加了對元包中每一個獨立包的引用依賴。同時也可用于發(fā)布應用。
使用元包具有以下好處:
在引用大量細粒度包方面,提供了一種方便的用戶體驗。
定義了一組經(jīng)過充分測試且運行良好的包(包括指定的各種版本)。
.NET Core 元包有:
Microsoft.NETCore.App - .NET Core 發(fā)行版的部分庫。 也就是 .NETCoreApp 框架。
Microsoft.AspNetCore.App - 包含來自 ASP.NET Core 和 Entity Framework Core 的所有受支持的包(包含第三方依賴項的包除外)。
Microsoft.AspNetCore.All – 在Microsoft.AspNetCore.App基礎(chǔ)上包含了第三方依賴項的所有受支持包。 (這個不推薦了,建議使用Microsoft.AspNetCore.App)
Microsoft.NETCore.Portable.Compatibility - 一組兼容外觀,使基于 mscorlib 的可移植類庫(PCL) 得以在 .Net Core上運行。
有了這個基礎(chǔ)后,也就是說,只要我們在項目中包含Microsoft.AspNetCore.App元包,就可以直接使用前面提到的那些庫了。
方法很簡單,在csproj中添加Microsoft.AspNetCore.All中即可。
????<ItemGroup> ????????<PackageReference?Include="Microsoft.AspNetCore.App"?/> ????</ItemGroup>
在.net 3.0中,需要使用FrameworkReference代替PackageReference ,效果如下
????<ItemGroup> ????????<FrameworkReference?Include="Microsoft.AspNetCore.App"?/> ????</ItemGroup>
添加了這個引用后,我們就可以和Asp.net core程序中一樣使用那些額外的庫了,發(fā)布程序的時候也不用附帶那些dll了。實際上,這些dll是指向了.net core SDK中的那些dll了,無需額外發(fā)布。(這個也就是為什么PackageReference無需指定版本號的原因)
參考文章:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Asp.net程序優(yōu)化js、css實現(xiàn)合并與壓縮的方法
這篇文章主要介紹了Asp.net程序優(yōu)化js、css實現(xiàn)合并與壓縮的方法,使用第三方組件實現(xiàn)訪問時將js與css文件壓縮并緩存在客戶端的效果,非常具有實用價值,需要的朋友可以參考下2014-12-12
Asp.Net中的Action和Func委托實現(xiàn)
這篇文章主要介紹了Asp.Net中的Action和Func委托的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12

