asp.net - .NET Standard 版本控制规则是什么?

标签 asp.net versioning .net-standard semantic-versioning

.NET Standard规定了所有 .NET 平台都必须实现的 API。它的版本规则是什么?是吗breaking.adding ,其中1.4添加并保持向后兼容 1.32.x不向后兼容 1.x ?

文档对此并不清楚。 Some Microsoft docs表示纯向后兼容性:

Given a .NET Standard Library version, you can use libraries that target that same or lower version. (emphasis added)



现在 2.0 出来了,上面的似乎不正确。话虽如此,the release blog post说过:

From a library targeting .NET Standard you’ll be able to reference [libraries targeting] .NET Standard, if their version is lower or equal to the version you’re targeting. (emphasis added)



同一篇博文自相矛盾地说:

In order to allow .NET Framework 4.6.1 to support .NET Standard 2.0, we had to remove all the APIs from .NET Standard that were introduced in .NET Standard 1.5 and 1.6.



现在 2.0 出来了,版本控制规则是什么?似乎是 breaking.adding . MSFT 在哪里记录了这一点?

最佳答案

我已经在我们的 On.NET episode on .NET Standard 中更详细地解释了这一点。 .

通常,.NET Standard 是这样工作的:

  • .NET Standard 将线性版本化,目的是不在版本之间进行重大更改。换句话说,您可以将 .NET Standard 的 API 表面视为同心圆,其中更高的版本具有更多的 API。
  • .NET 平台的特定版本将实现 .NET Standard 的特定版本。
  • 在选择 .NET Standard 版本作为目标时,请考虑以下权衡:
  • 版本号越高,可以使用的 API 就越多
  • 版本号越低,支持的.NET 平台越多

  • 那么,为什么要谈论重大变革呢?简短的回答是因为我们在定义 .NET Standard 1.x 时犯了一个错误并且没有考虑平台范围。您应该忽略 .NET Standard 1.5 和 1.6 并避免依赖它们。如果这样做,.NET Standard 2.0 是 .NET Standard 1.4 的严格超集。

    有关更多详细信息,请阅读部分 .NET Standard 2.0 重大更改:在 my blog post on .NET Standard 中添加 .NET Framework 4.6.1 兼容性.

    更新 .在收到大量社区反馈后,我们决定不执行此重大更改。有关此决定的更多详细信息在 .NET Standard FAQ 中列出。 .

    关于asp.net - .NET Standard 版本控制规则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39983145/

    相关文章:

    xamarin - 引用 PCL 配置文件 111 是 PCL .NET 标准 1.1

    asp.net - 用户控件中的动态 ID 以避免 JavaScript 和 Asp 页面中的重复

    ASP.NET 下拉菜单项颜色

    javascript - 创建一个同时服务于经典 ASP 和 ASP.Net 的类

    php - 为什么此代码适用于 PHP 版本 5.2.10 而不适用于 PHP 版本 5.2.10-2?

    visual-studio-2017 - 强制项目引用包含在 netstandard nuget 包中

    asp.net - 找不到与具有绑定(bind) WebHttpBinding 的端点的方案 https 匹配的基地址

    git - 如何让编码人员有选择地访问我的 Git Repo 中的代码?

    java - 如何切换到 Intellij 中的另一个颠覆分支?

    c# - dotnet core 2.0 - 以编程方式将 VS2017 调试器附加到进程