首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Project.json definition dnx451 vs .dotnet ( 4.51)

Project.json definition dnx451 vs .dotnet ( 4.51)
EN

Stack Overflow用户
提问于 2015-07-21 20:41:33
回答 2查看 14.7K关注 0票数 57

我有一些在asp vnext中我可以定义3种类型的运行时

  • dnxCore
  • dnx451
  • dotnet

在Project.json中,它看起来像这样:

代码语言:javascript
复制
"frameworks": 
{
    "dotnet": { },
    "dnx451": { },
    "dnxcore50": { }
}^

而ui缩短了这一点

我假设以下情况:

dnxCore是新的.net核心框架。

dotnet是上一个运行时

dnx451:在project.json中定义"dotnet“或"dnx451”有什么不同?

两者都不应该与.net执行运行时一起运行吗?

另外,根据我选择的项目模板( vNext ClassLib或vNext Console Lib),默认包含一个或另一个。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-07 19:10:13

用一种不同的方式回答你的问题:一个库应该针对SDK需要的环境。如果您不需要SDK,请使用netstandard (或在.NET核心RC2 dotnet之前)。

在CoreCLR/CoreFx (不推荐使用的)上运行的netcoreapp1.0 DNX SDK,请使用在.Net 4.5.1 (台式机CLR /完整的BCL和整流器) (deprecated,上运行的.Net DNX SDK使用在桌面CLR / Full BCL上运行的instead).

  • net46 FCL.

  • uap10.0 .Net Framework4.6SDK和在CoreCLR/CoreFx.

  • netstandard1.5 (之前的RC2,dotnet )上运行的.Net .NET .NET Core1.0 SDK上运行的FCL.

  • uap10.0UWPWindows10SDK任何声明其依赖项(System.Runtime (基于)库而不是PCL契约)的纯IL代码。框架依赖项可用于.Net 4.5.x以上版本、.NET核心或UWP (不同版本中基于System.Runtime的库集)。由于RC2 dotnet已被弃用,请使用netstandard dotnet (.NET Core2.0;~2017年6月)任何纯IL代码,这些代码完全依赖于所有平台(.NET核心、.NET框架、Xamarin、Mono、Unity3D)必须实现(或抛出NotImplementedException)的netstandard.dll功能集。netstandard2.x大致是.NET框架的BCL库(没有WMI、WinForms、WPF、WCF、WWF等FCL组件)。根据兼容性netstandard2.0.

,大多数现有的NuGet包都将自动成为shims

因此,如果您的库只有一些算法或不是特定于平台的,请使用netstandard / dotnet。如果您的任何依赖项受到限制,此依赖项将向上传播到使用它的应用程序(例如DNX、UWP、.Net46)。

我只能像Malachi一样突出显示Oren的文章系列。(他刚刚写了一个新的主题:https://oren.codes/2015/07/29/targeting-net-core/ )。

ps:dotnet / netstandard不是一个具体的运行时,它是它的抽象。它是一个目标,在这种情况下,它甚至没有指定运行时,而是说:任何正确解释IL的东西都可以。例如,dnxcore5是一个指定具有特定运行时(CoreCLR)的SDK(DNX)的目标。在这种情况下,您可以对运行时行为做进一步的假设(例如JIT的使用、x-plat实现的可用性等)。

注意:在即将发布的RC2版本中,dotnet名称已转换为术语netstandard。此外,完整的DNX SDK在.NET核心和ASP.NET团队之间拆分。因此,.NET核心(CoreCLR/CoreFx)的框架绰号是netcoreapp1.0,而99%的ASP.NET堆栈只是带有netstandard1.5的库。DNX绰号(dnx451dnxcore50)已弃用。在.NET框架上运行ASP.NET核心(而不是.NET核心)时,请使用net451。详细信息:https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md

ppps:值得注意的是,基于依赖关系的契约的netstandard1.x概念并没有进一步发展,而是变成了一个(巨大的)标准契约(32k API;netstandard2.0),它必须由所有平台实现,包括即将发布的.NET Core2.0。这种变化的好处是,大多数现有的NuGet包生态系统(指mscorlib和朋友)可以通过使用中间兼容性垫片集成到netstandard2.0包中。

票数 69
EN

Stack Overflow用户

发布于 2015-07-21 23:50:34

dotnet的目标是大量的.NET Core4.6兼容性。reference link

"dotnet这是新的.NET核心,适用于没有任何应用模型要求的软件包。“-- reference link

因此,根据这些定义,dotnet是新的运行时,而不是以前的运行时

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31539341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档