NET Standard vs Net Core App:創建 .NET Core 項目時(使用控制台或類庫)
我正在嘗試將我的項目開發為跨平台。我以這種方式創建了幾個類庫:
但是,當我使用 Entity Framework 搭建我的數據庫時,除了在控制台應用程序中使用之外,沒有安裝所需的 nuget 包。
類庫引用 NET Standard:
那麼為什麼它們都在 .NET Core 下但引用不同的庫呢?它們都是跨平台的還是僅使用 .NET Core 的控制台?在這種情況下我應該避免使用類庫嗎?
“那麼為什麼它們都在 .NET Core 下但引用不同的庫?”
為其創建庫的推薦 NET 版本現在是Net Standard Library。這就是為什麼在創建類庫時預設使用的是 net 標準版本而不是 Net Core。您可以手動更改它,但不建議您參閱這篇關於Introducing .NET Standard Library的部落格文章。
它們都是跨平台的還是僅使用 .NET Core 的控制台?
是的,它們都是跨平台的。
在這種情況下我應該避免使用類庫嗎?
不,無論如何都可以使用類庫。這不是微軟一開始的初衷,但後來他們改變了主意,所以並不是所有的包都與.net標準兼容,這就是為什麼你不能使用net標準版本來擁有一個腳手架項目,因為“Microsoft. EntityFrameworkCore.Tools”目前只兼容Net core,但可能很快就會兼容DotNet Standard
正如我所說,如果您真的想保留腳手架選項,那麼您可以使用類庫項目並在 project.json 中手動更改 .net 版本,然後一旦兼容,您就可以切換回 .net 標準。您的其他項目(例如服務或數據層)取決於您希望如何保持分離,可以是具有 dotnet 標準的類庫,它們將能夠正常工作。
或者,您可以從原始解決方案中創建一個控制台應用程序(.net 核心),並使用 .net 標準複製並粘貼到您的真實類庫中。(這是我們目前在項目中所做的)


