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

Hoa*_*iep 35 .net .net-core asp.net-core

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

Nat*_*ini 44

您可以在.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": { }
  }
Run Code Online (Sandbox Code Playgroud)

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

  "dependencies": {
    "Microsoft.AspNetCore.Mvc": "1.0.0"
  },
  "frameworks": {
    "net461": { }
  }
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为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"
        }
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,请注意Microsoft.NETCore.App依赖项是frameworks部分移动的.这是必要的,因为只有在构建时才需要这种依赖性netcoreapp1.0,而不是net461.

  • Aaaaaaa,幸运的是,他们改变了主意([来源](http://www.theregister.co.uk/2017/05/11/microsoft_asp_net_core_2_0/)). (7认同)
  • ASP.NET Core 2.0将无法定位完整的.NET框架([参见github](https://github.com/aspnet/Home/issues/2022)),只有.NET Core 2.0 (3认同)