繁体   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