ASP.NET?Core通過Microsoft.AspNetCore.App元包簡(jiǎn)化程序集引用
Asp.net core下提供默認(rèn)提供了一些在.net core不能直接使用的庫(kù),如日志、依賴注入、選項(xiàng)、通用主機(jī)、EntityFramework等,雖然我們可以通過Nuget的方式手動(dòng)加載這些包,但這些包大多分得很細(xì),往往會(huì)引入許多依賴的相關(guān)的包,造成動(dòng)不動(dòng)就引入了七八個(gè)dll的情況。雖然對(duì)于設(shè)計(jì)上來講,包的粒度劃分的細(xì)一些本身是更合理的行為,并且對(duì)實(shí)際的功能也沒有什么影響,但對(duì)于很多像我一樣有編程潔癖行為的開發(fā)者來說看著文件夾下一大堆和業(yè)務(wù)無關(guān)的dll多多少少有些不爽的。
可能微軟也了解了我們的這一需求,推出了了元包這個(gè)概念。 元包就是一個(gè) NuGet 包約定,描述了一組意義相關(guān)的包。 開發(fā)團(tuán)隊(duì)利用依賴項(xiàng)來描述這一組包。 他們通過這一組包來描述一個(gè)框架,然后有選擇地發(fā)布出去。以某個(gè)框架為目標(biāo)以及隱式引用元包,這實(shí)際上是添加了對(duì)元包中每一個(gè)獨(dú)立包的引用依賴。同時(shí)也可用于發(fā)布應(yīng)用。
使用元包具有以下好處:
在引用大量細(xì)粒度包方面,提供了一種方便的用戶體驗(yàn)。
定義了一組經(jīng)過充分測(cè)試且運(yùn)行良好的包(包括指定的各種版本)。
.NET Core 元包有:
Microsoft.NETCore.App - .NET Core 發(fā)行版的部分庫(kù)。 也就是 .NETCoreApp 框架。
Microsoft.AspNetCore.App - 包含來自 ASP.NET Core 和 Entity Framework Core 的所有受支持的包(包含第三方依賴項(xiàng)的包除外)。
Microsoft.AspNetCore.All – 在Microsoft.AspNetCore.App基礎(chǔ)上包含了第三方依賴項(xiàng)的所有受支持包。 (這個(gè)不推薦了,建議使用Microsoft.AspNetCore.App)
Microsoft.NETCore.Portable.Compatibility - 一組兼容外觀,使基于 mscorlib 的可移植類庫(kù)(PCL) 得以在 .Net Core上運(yùn)行。
有了這個(gè)基礎(chǔ)后,也就是說,只要我們?cè)陧?xiàng)目中包含Microsoft.AspNetCore.App元包,就可以直接使用前面提到的那些庫(kù)了。
方法很簡(jiǎn)單,在csproj中添加Microsoft.AspNetCore.All中即可。
????<ItemGroup> ????????<PackageReference?Include="Microsoft.AspNetCore.App"?/> ????</ItemGroup>
在.net 3.0中,需要使用FrameworkReference代替PackageReference ,效果如下
????<ItemGroup> ????????<FrameworkReference?Include="Microsoft.AspNetCore.App"?/> ????</ItemGroup>
添加了這個(gè)引用后,我們就可以和Asp.net core程序中一樣使用那些額外的庫(kù)了,發(fā)布程序的時(shí)候也不用附帶那些dll了。實(shí)際上,這些dll是指向了.net core SDK中的那些dll了,無需額外發(fā)布。(這個(gè)也就是為什么PackageReference無需指定版本號(hào)的原因)
參考文章:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談如何在ASP.NET Core中實(shí)現(xiàn)一個(gè)基礎(chǔ)的身份認(rèn)證
這篇文章主要介紹了淺談如何在ASP.NET Core中實(shí)現(xiàn)一個(gè)基礎(chǔ)的身份認(rèn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12MVC4制作網(wǎng)站教程第四章 部分欄目功能實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了MVC4制作網(wǎng)站教程,部分欄目功能實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08解決ASP.NET中"/"應(yīng)用程序中的服務(wù)器錯(cuò)誤的方法
這篇文章主要介紹了解決ASP.NET中"/"應(yīng)用程序中的服務(wù)器錯(cuò)誤的方法,,需要的朋友可以參考下2016-03-03最鋒利的Visual Studio Web開發(fā)工具擴(kuò)展:Web Essentials使用詳解
Web Essentials是目前為止見過的最好用的VS擴(kuò)展工具了,具體功能請(qǐng)待我一一道來。2016-06-06ASP.NET Core自動(dòng)生成小寫破折號(hào)路由的實(shí)現(xiàn)方法
這篇文章主要介紹了ASP.NET Core自動(dòng)生成小寫破折號(hào)路由的實(shí)現(xiàn)方法,幫助大家更好的理解和學(xué)習(xí)使用ASP.NET Core,感興趣的朋友可以了解下2021-04-04ASP.NET設(shè)計(jì)網(wǎng)絡(luò)硬盤之刪除文件夾實(shí)現(xiàn)代碼
對(duì)于不再需要的文件/文件夾用戶有權(quán)限做刪除處理。這一節(jié)就介紹如何實(shí)現(xiàn)這一功能2012-10-10asp.net 頁(yè)面逐步呈現(xiàn)的方法總結(jié)
分塊編碼 ( chunked encoding )就是讓 response 分塊編碼進(jìn)行傳輸。response 分塊編碼,可以先傳輸一部分不需要處理的 html 代碼到客戶端,等其他耗時(shí)代碼執(zhí)行完畢后再傳輸另外的 html 代碼。2010-06-06