在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 回答
Visual Studio将所有代码交叉编译为
frameworks
部分中列出的所有框架 . 所以:dnx451
,dnx46
等 . 这是一个完整的.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 SqlClient或Entity Framework 7从sql server访问数据dotnet
老实说,我不知道它是什么 - 当前的文档没有提到这种框架的存在,或者它是否提供了可以在这里使用的任何有效字符串列表 . Visual Studio工具似乎在解析框架中非常自由(例如'451'
=='net451'
) . 它至少为我编译.NET 4.0 ...关于他如何选择dnx风味的斯科特艾伦有一个blog post . 还有关于如何选择正确的.NET的文档页面here(在我看来非常粗略) .
您可能有兴趣查看corefx来源以检查.NET Core是否提供了您需要的软件包 .