为什么Razor UI类库是建立在.NET Standard上而不是.NET Core上?

7
我已在 .Net Core 应用程序中创建了一个 Razor 类库。该库构建为 .NET Standard,而主 Web 项目和其他类库则构建为 .Net Core 2.2。当我尝试向我的 Razor 类库添加引用时,会出现以下错误:

project is not compatible with net standard 2.0

我将 Razor 类库的目标框架从 [netstandard2.0] 更改为:

enter image description here

转至 [netcoreapp2.2]:

enter image description here

一切工作正常。

我知道.Net标准允许剃刀类库针对.Net Core应用程序和.Net Core框架应用程序进行定位,但我也知道剃刀类库是.Net Core 2.1的一个特性。

问题:我需要知道为什么剃刀类库是作为.NET Standard构建的而不是.Net core,并且我是否应该将所有的类库更改为.Net Core 2,以便能够添加.Net core类库作为引用?


.NET Standard 意味着它可以在 .NET Core、.NET Framework 和可能的 Mono 中使用。如果仅针对 Core,这种情况就不会发生。 - ckuri
@ckuri 但是为什么微软要将这个功能包含在 .Net Core 中呢? - Alaaeddine HFIDHI
1
老兄!感谢您带领我了解手动更改TargetFramework的见解!!!我浪费了整整一天的时间来完成这个任务。 - Guilherme Golfetto
1个回答

8
ASP.NET Core 2.* 同样可以在 .NET Framework 上运行,因此您需要一个 .NET Standard 库,以便在 .NET Core 和 .NET Framework 的主机应用程序上使用 Razor UI,因此默认模板适用于这两种情况。
由于 ASP.NET Core 3+ 将不再在 .NET Framework 上运行,因此该行为可能会改变。但是,“库”的建议默认值目前为 .NET Standard,因此 Razor UI 库模板遵循此建议是有意义的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接