1

当您在 Visual Studio 2015 中基于 ASP.NET 项目模板创建新项目时,您会在 project.json 中获得以下框架元素

"frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

如果您将类库添加到解决方案,则 frameworks 元素如下所示:

"frameworks": {
    "dotnet": { }
  }

现在这些不同的框架是什么,我需要所有这些吗?例如,如果我希望这个库从 sql server 访问数据,我可以使用 dnx451 还是必须使用 dotnet?

在早期版本的 ASP.NET 5 中,建议摆脱 dnxcore50。现在还是这样吗?例如,为什么要使用 dnx451 而不是 dnxcore50?

“dotnet”框架指的是什么版本的.NET?

4

1 回答 1

2

Visual Studio 针对部分中列出的所有框架交叉编译所有代码frameworks。所以:

dnx451dnx46等等。这是一个完整的 .NET 框架,在启动期间DNX将引导安装的 .NET Framework 4.5.1 或 4.6 左右的版本。

dnxcore50是使用 CoreCLR 运行时和 CoreFX 库的新 .NET Core - 微软的开源项目,它是 .NET Framework 的子集,旨在实现可移植和跨平台。如果您不针对它进行编译并且不关心跨平台开发或 .NET Core 提供的其他好处,您可能会摆脱它。另一方面,如果 .NET Core 不提供您需要的功能,例如 WCF(服务器端)、WPF、反射 API(只有一个子集)、应用程序域,则您必须摆脱它。可以通过 ADO.NET SqlClientEntity Framework 7从 sql server 访问数据

dotnet老实说,我不知道它是什么——当前的文档没有提到这种框架的存在,或者它是否提供了可以在此处使用的任何有效字符串列表。Visual Studio 工具在解析框架方面似乎非常自由(例如'451'== 'net451')。它至少为我编译为 .NET 4.0 ......小偷

Scott Allen 有一篇 关于他将如何选择 dnx 风味的博客文章。这里还有关于如何选择正确的 .NET 的文档页面(我认为非常粗略)。

您可能有兴趣查看corefx源以检查 .NET Core 是否提供您需要的包。

于 2015-10-14T15:03:09.793 回答