簡體   English   中英

NET Standard與Net Core App:創建.NET Core Project時(使用控制台或類庫)

[英]NET Standard vs Net Core App: when creating .NET Core Project (using console or class library)

我正在嘗試將我的項目開發為跨平台的。 我以這種方式創建了幾個類庫: 在此處輸入圖片說明

但是,當我使用Entity Framework搭建數據庫時,所需的nuget程序包沒有安裝,除了在Console應用程序中使用時。

區別在於,控制台應用程序引用了.NET Core: 在此處輸入圖片說明

並且類庫引用NET標准:

在此處輸入圖片說明

那么為什么它們都在.NET Core下卻引用不同的庫呢? 它們都是跨平台的還是僅使用.NET Core的控制台? 在這種情況下,我應該避免使用類庫嗎?

“那么為什么它們都在.NET Core下卻引用不同的庫?”
現在推薦的用於創建庫的NET版本是Net Standard Library 這就是為什么在創建類庫時默認的是net標准版本而不是Net Core。 您可以手動更改它,但不建議您參閱此博客文章有關.NET標准庫簡介

它們都是跨平台的還是僅使用.NET Core的控制台?
是的,它們都是跨平台的。

在這種情況下,我應該避免使用類庫嗎?
不,每次都可以使用類庫。 最初,這並不是Microsoft的初衷,但后來他們改變了主意,因此,並非所有軟件包都與.net標准兼容,這就是為什么您不能使用net標准版本來創建腳手架項目的原因,因為“ Microsoft。目前,“ EntityFrameworkCore.Tools”僅與Net core兼容,但很快可能與DotNet Standard兼容

就像我說的那樣,如果您真的想保留scaffold選項,則可以使用類庫項目,並在project.json中手動更改.net版本,一旦兼容,就可以切換回.net標准。 根據您希望如何保持分隔的其他項目(例如服務或數據層)可以是具有dotnet標准的類庫,並且它們將能夠正常工作。

或者,您可以使用原始解決方案中的控制台應用程序(.net核心)appart,然后使用.net標准將其復制並粘貼到您的真實類庫中。 (這是我們目前在項目中所做的事情)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM