首页 文章

NET Standard与Net Core App:创建.NET Core Project时(使用控制台或类库)

提问于
浏览
9

我正在尝试将我的项目开发为跨平台 . 我用这种方式创建了几个类库:
enter image description here

但是,当我使用Entity Framework来构建我的数据库时,除了在Console应用程序中使用时,所需的nuget包没有安装 .

这是区别,控制台应用程序引用.NET Core:
enter image description here

类库引用NET标准:

enter image description here

那么为什么他们都在.NET Core下但引用了不同的库?它们都是跨平台还是仅使用.NET Core的控制台?在这种情况下,我应该避免使用类库吗?

1 回答

  • 5

    "So why they are both under .NET Core but referencing different libraries?"
    用于创建库的推荐.NET版本现在是Net Standard Library . 这就是为什么创建类库时的默认值是净标准版本而不是Net Core . 您可以手动更改但不建议另请参阅此博客文章关于Introducing .NET Standard Library .

    Are both of them Cross Platform or only the console which is using .NET Core?
    是的,它们都是跨平台的 .

    And should I avoid using Class libraries in this case?
    不,无论何时都可以使用类库 . 这不是微软一开始的初衷,但他们后来改变了主意,所以并非所有软件包都与.net标准兼容,这就是为什么你不能使用net标准版本来 Build 一个脚手架项目,因为"Microsoft.EntityFrameworkCore.Tools"在moment只与Net core兼容,但很快就会与DotNet Standard兼容

    正如我所说,如果你真的想保留脚手架选项,那么你可以使用类库项目并在project.json .net版本中手动更改,然后一旦兼容你可以切换回.net标准 . 您的其他项目(如服务或数据层)取决于您希望如何保持分离,可以是具有dotnet标准的类库,它们将能够正常工作 .

    或者您可以从原始解决方案中获得一个控制台应用程序(.net core)appart,并使用.net标准将其复制并粘贴到您的真实类库中 . (这是我们目前在项目中所做的事情)

相关问题