2015-10-14 41 views
1

当你创建一个基于你在project.jsonproject.json frameworrks元素是什么意思和使用哪个框架?

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

以下框架元素的ASP.NET项目模板在Visual Studio 2015年一个新的项目如果添加一个类库解决方案框架元素的外观像这样:

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

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

在早期版本的ASP.NET 5中,建议删除dnxcore50。这仍然是这样吗?为什么你会使用dnx451而不是dnxcore50?

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

回答

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(只有一个子集),应用程序域等功能,则必须删除它。从SQL Server访问数据通过ADO.NET SqlClientEntity Framework 7

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

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

您可能会感兴趣在寻找corefx的源代码来检查.NET Core是否提供了您所需的软件包。

+0

我发现这个:https://oren.codes/2015/06/09/pcls-net-core-dnx-and-uwp/其中Oren Novotny解释了你可能在'frameworks'中使用的不同风味。非常翔实,但不解释如何选择。并且可能已经过时(6月写的文章) – pg0xC