首页 文章

project.json frameworrks元素意味着什么以及使用哪个框架?

提问于
浏览
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?

1 回答

  • 2

    Visual Studio将所有代码交叉编译为 frameworks 部分中列出的所有框架 . 所以:

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

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

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

    关于他如何选择dnx风味的斯科特艾伦有一个blog post . 还有关于如何选择正确的.NET的文档页面here(在我看来非常粗略) .

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

相关问题