C# 针对必要的框架,以支持混合项目类型

C# 针对必要的框架,以支持混合项目类型,c#,asp.net-core,entity-framework-core,C#,Asp.net Core,Entity Framework Core,我目前正在使用asp.net-core 2.1和几个.net core 2.1库。其中两个项目基于ef core 2.1库和模型库。我现在需要开发一个引用这两个项目的Windows服务,我假设我可以简单地将它们切换到NetStandard2.0 根据,这是可能的,但是我在asp.net核心项目(使用sdk 2.1.400)中有以下设置: 有人知道我如何在Windows服务中利用ef核心和模型库吗?摘自评论 大多数ASP.NET核心软件包都符合.NET标准2.0,但meta软件包Microsoft

我目前正在使用asp.net-core 2.1和几个.net core 2.1库。其中两个项目基于ef core 2.1库和模型库。我现在需要开发一个引用这两个项目的Windows服务,我假设我可以简单地将它们切换到NetStandard2.0

根据,这是可能的,但是我在asp.net核心项目(使用sdk 2.1.400)中有以下设置:


有人知道我如何在Windows服务中利用ef核心和模型库吗?

摘自评论

大多数ASP.NET核心软件包都符合.NET标准2.0,但meta软件包Microsoft.AspNetCore.App不符合.NET标准2.0


因此,要将您的两个项目重新定位到.NET标准2.0,您需要删除对
.App
的包引用,并使用对单个包的引用,就像您发现的那样。

“我可以简单地将它们切换到netstandard 2.0。”当它们有
Microsoft.AspNetCore.App
之类的引用时,这是不可能的。为什么泛型程序集需要有这样的(ASP.NET核心特定的)引用?很好,模型库有
,因为
Microsoft.AspNetCore.Mvc
命名空间中有几个属性。相反,引用显式dep是有效的。写下你的评论作为回答,非常感谢。
<TargetFramework>netcoreapp2.1</TargetFramework>
NU1202 Package Microsoft.AspNetCore.App 2.1.0 is not compatible with netstandard2.0 (.NETStandard,Version=v2.0). Package Microsoft.AspNetCore.App 2.1.0 supports: netcoreapp2.1 (.NETCoreApp,Version=v2.1)