我可以使用仅针对.NET 4.6.1的ASP.NET Core吗?

时间:2016-07-03 04:26:10

标签: .net asp.net-core .net-core

我听说ASP.NET Core可以针对.NET Framework 4.6.1。这是否意味着它只能使用.NET 4.6.1,或者它可以将.NET 4.6.1与.NET Core一起使用?

2 个答案:

答案 0 :(得分:43)

您可以在.NET Core 1.0或.NET Framework 4.5.1+之上运行ASP.NET Core。由于“ASP.NET Core”实际上只是一组NuGet包,因此您可以将它们安装到针对任一框架的项目中。

例如,.NET Core项目如下所示:

  "dependencies": {
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    }
  },
  "frameworks": {
    "netcoreapp1.0": { }
  }

虽然.NET Framework项目看起来像(在.NET 4.6.1的情况下):

  "dependencies": {
    "Microsoft.AspNetCore.Mvc": "1.0.0"
  },
  "frameworks": {
    "net461": { }
  }

这是有效的,因为Microsoft.AspNetCore.Mvc包具有.NET Framework 4.5.1和.NET Standard Library 1.6的目标。

也可以从一个项目构建两个框架:

  "dependencies": {
    "Microsoft.AspNetCore.Mvc": "1.0.0",
  },
  "frameworks": {
    "net461": { },
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      }
    }
  }

在这种情况下,请注意Microsoft.NETCore.App部分中的frameworks依赖关系已移动到内部。这是必要的,因为仅在构建netcoreapp1.0时才需要此依赖关系,而不是net461

答案 1 :(得分:4)

您可以同时执行这两项操作 - 即仅定位桌面CLR,Core CLR或两者。要定位桌面Clr 4.6.1,请使用net461名字对象作为目标框架。要定位Core Clr,请使用netcoreapp1.0。您可以并排使用它们但感觉有点尴尬 - 为什么在应用程序的情况下你会这样做呢?