Boa*_*ler 56 .net .net-core dnx
我有一些在asp vnext中我可以定义3种类型的运行时
在Project.json中它看起来像这样:
"frameworks":
{
"dotnet": { },
"dnx451": { },
"dnxcore50": { }
}^
Run Code Online (Sandbox Code Playgroud)
并且ui支持这个

我假设如下:
dnxCore是新的.net核心框架.
dotnet是以前的运行时
dnx451: 在project.json中定义"dotnet"或"dnx451"时有什么不同?
不应该都使用.net执行运行时运行吗?
另外,根据我选择的项目模板(vNext ClassLib或vNext Console Lib),默认包含一个或另一个.
Tho*_*mas 69
以不同的方式回答您的问题:库应该针对其所需的SDK的环境.如果您不需要使用SDK netstandard(或在.NET Core RC2之前dotnet).
dnxcore50在CoreCLR/CoreFx上运行的DNX SDK(不建议使用,请netcoreapp1.0改用).dnx451在.Net 4.5.1(桌面CLR /完整BCL和FCL)上运行的DNX SDK(不建议使用,请net451改用).net46 .Net Framework 4.6 SDK在Desktop CLR/Full BCL和FCL上运行.uap10.0 在.Net Native/CoreFx上运行的UWP Windows 10 SDK.netcoreapp1.0 在CoreCLR/CoreFx上运行的.NET Core 1.0 SDK.netstandard1.5(RC2,dotnet之前)任何声明其依赖关系的纯IL代码(System.Runtime(基于)库而不是PCL契约).框架依赖性可用于.Net 4.5.x以上版本,.NET Core或UWP(基于System.Runtime的库集在不同版本中).与RC2不同dotnet,请netstandard改用.netstandard2.0(.NET Core 2.0; ~JUN 2017)任何纯IL代码,它只依赖于netstandard.dll所有平台(.NET Core,.NET Framework,Xamarin,Mono,Unity3D)必须实现的功能集(或抛出NotImplementedException).该netstandard2.x大致是.NET Framework的BCL库(不象WMI,的WinForms,WPF,WCF,WWF,... FCL组件).通过兼容性垫片,大多数现有的NuGet包将自动生成netstandard2.0.因此,如果您的库只有某些算法或不是特定于平台,请使用netstandard/ dotnet.如果您的任何依赖项受到限制,则此依赖项将传播到使用它的应用程序(例如DNX,UWP,.Net46).
我只能像玛拉基一样突出奥伦的文章系列.(他刚刚在同一主题上写了一篇新文章:https://oren.codes/2015/07/29/targeting-net-core/).
ps:dotnet/ netstandard不是具体的运行时它是它的抽象.它是一个目标,在这种情况下甚至没有指定运行时,而是说:任何正确解释IL的东西.例如,dnxcore5是指定具有特定运行时(CoreCLR)的SDK(DNX)的目标.在这种情况下,您可以进一步假设运行时行为(如JIT的使用,x-plat实现的可用性等).
pps:请注意,该dotnet名称已转换为netstandard即将发布的RC2版本.此外,完整的DNX SDK在.NET Core和ASP.NET Teams之间进行了拆分.因此,.NET Core(CoreCLR/CoreFx)的框架名称是netcoreapp1.099%的ASP.NET堆栈只是库netstandard1.5.DNX标记符(dnx451和dnxcore50)已弃用.在.NET Framework(而不是.NET Core)上运行ASP.NET Core时使用net451.重读详情:https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md
ppps:持续地意识到,netstandard1.x基于依赖的合同的概念没有进一步发展,而是改为一个(巨大的)标准合同(32k API; netstandard2.0),必须由包括即将推出的.NET Core 2.0在内的所有平台实现.这种改变的优势在于,NuGet包的大多数现有生态系统(引用mscorlib和朋友)可以netstandard2.0通过使用中间兼容性填充程序集成到包中.
| 归档时间: |
|
| 查看次数: |
14424 次 |
| 最近记录: |