2017-09-11 40 views
4

目前我正在向.Net Core移植一個asp web api。在netstandard中使用Microsoft.AspNetCore.All包

api使用提供ActionFilterAttribute類的一些實現的類庫。

所以我也必須移植這個類庫。 當我試圖在NuGet包Microsoft.AspNetCore.All添加到類庫我recived此錯誤:

Package Microsoft.AspNetCore.All 2.0.0 is not compatible with netstandard2.0

當我改變目標框架netcoreapp2.0,我能夠安裝包,但當然,我需要這個目標類型的入口點。

我如何創建磊類庫可以使用Microsoft.AspNetCore.All包

問候

回答

4

你不能(以及技術上你可以通過的NuGet回退,但你不應該爲它可能會影響你的便攜性),你不應該這樣做。

.All包是一個方便的元包,所以即使是最簡單的ASP.NET Core Project也不需要引用十二個或其他程序集。

它的目標是.NET Core,所以你不能在.NET標準中使用它。

當您發佈您的應用程序時,未使用的軟件包將被剝離。在做類庫時,你不需要依賴於所有東西,而只需要項目所需的包。

2

metapackage Microsoft.AspNetCore.All僅適用於.NETCoreApp。這是by design,因爲它明確定位爲.NET Core上運行的Web應用程序的便利包。爲了在發佈時間發揮它的魔力(剝離未使用的依賴項),它需要.NET Core運行時存儲,它僅適用於.NET Core本身。

所有其他項目(包括在.NET標準上運行的庫項目,但也包括在完整的.NET Framework上運行的所有項目)都應該使用單獨的包引用。

因此,您不需要引用Microsoft.AspNetCore.All,而是引用例如Microsoft.AspNetCoreMicrosoft.AspNetCore.Mvc以獲得您的ActionFilterAttribute

相關問題