在完整的 .NET 框架和 .NET Core 之间进行选择作为 ASP.NET 核心目标?

Choosing between full .NET framework and .NET Core as ASP.NET Core target?

我正在扩展一个使用 .NET 4.5 的系统。我需要:

  1. 能够引用我的新 .NET Core 库的其他项目。
  2. 我的 .NET Core 项目能够引用我们的 .NET 4 库。

除了以哪个为目标的问题,我还注意到 VS 2017 在创建新项目时甚至没有给我以 .NET Core 为目标的选项。

.net 核心库其实就是.net 标准库。因此,当您创建一个 .net 标准库时,它可以被完整的框架 classes 引用,但前提是您使用的 .net 标准版本是正确的。听起来很混乱?

简单来说,请在此处查看此图表 https://github.com/dotnet/standard/blob/master/docs/versions.md

如果您的完整框架 classes 以 .net framework 4.5 为目标,那么为了也能够在 .net core 1.0 中使用它们,您需要让您的库使用 .net standard 1.1。

如果您已经拥有一个完整的框架网络应用程序 运行,并且您想要以 .net 标准构建库。你真正应该这样做的唯一原因是如果..

  • 您打算在不久的将来将 WebApp 转换为 .net core。
  • 您正在构建一个可以在其他 .net 核心项目中使用的 class 库。

如果您在可预见的情况下坚持为您的 Web 应用程序使用完整的框架,那么实际上没有任何必要在 .net 标准中构建东西(特别是如果您必须拍摄一个非常精简的版本标准如 1.1)。

关于为什么在创建.net core项目时不能"target"框架。如果你愿意的话,这是一个已知的"bug"。或者更多,以便在创建 .net 核心项目时下拉菜单是多余的。它只会在您的机器上使用最新版本的 .net 核心 SDK(默认情况下)。

进一步阅读: