.NET Framework的新日本时代更新摘要

本文介绍.NET Framework的新日本时代更新。

原始产品版本:.NET Framework 3.5 及更高版本
原始 KB 编号: 4477957

摘要

2019年5月1日,日本日历的新时代将开始。 Microsoft 正在为这些更改做好准备,并计划在每月汇总版本中发布更新。 这是自1989年1月以来第一次从一个时代过渡到另一个时代,也是.NET Framework历史上的第一次。 本文旨在帮助开发人员测试和验证时代在 .NET 应用程序中的工作方式、应用程序如何受到时代变化的影响,以及你作为开发人员必须执行哪些操作才能确保应用程序成功处理即将发生的日本时代变化。

有关日本时代更改的 Windows 更新的详细信息,请参阅 知识库4469068

.NET Framework更新

以下版本包含.NET Framework的日本时代更新。 它们还包含质量和可靠性改进。

注意

对于某些版本的 Windows,.NET Framework更新通过单独的特定于.NET Framework的累积更新提供。 有关详细信息,请参阅宣布Windows 10 2018 年 10 月更新.NET Framework的累积汇报

日语时代更新.NET Framework版本的知识库文章

下表中列出的服务更新包含以前发布的更新中已包含.NET Framework的所有日本时代更新。 服务更新还包含新的质量更新,该更新删除了单引号在日语纪元格式中输出 Gannen 字符的依赖项,使自定义日期和时间格式字符串的任一 "y年" 或 "y'年'" 允许.NET Framework将年份 1 的格式设置为 元。 这些更新在 Windows 更新、Windows Server Update Service (WSUS) 和 Windows 更新 Catalog 上提供。

Windows 10版本 1507 Windows 10,版本 1607 (周年更新) /Windows Server 2016 Windows 10版本 1703 (创意者更新) Windows 10,版本 1709 (Fall Creators Update) Windows 10版本 1803 (2018 年 4 月更新) Windows 10 版本 1809 (2018 年 10 月更新) /Windows Server 2019
4489872 4489889 4489888 4489890 4489894 4489192

Microsoft 在 2019 年 5 月发布了适用于 Windows 8.1 和早期受支持的 Windows 版本的 .NET Framework 安全性和质量汇总,如下所示。 这些更新稍后发布的所有安全和质量汇总也将包含日本时代更新。

.NET Framework Windows Server 2008 Windows 7 /Windows Server 2008 R2 Windows Server 2012 Windows 8.1 / Windows Server 2012 R2
.NET Framework 3.5 4495604 4495606 4480061 4495608
.NET Framework 4.5.2 4495596 4495596 4495594 4495592
.NET Framework 4.6 或更高版本 4495588 4495588 4495582 4495585

注意

Microsoft 在 2019 年 3 月没有发布 Windows 8.1 和早期受支持的 Windows 版本的.NET Framework安全和质量汇总。 如果要为包含 Windows 8.1 和早期受支持的 Windows 版本的所有日语时代更新的 .NET Framework 部署最新更新,请参阅仅安全更新客户的更改部分。

针对仅安全更新客户的更改

本部分面向依赖仅安全 (SO) 更新的 Windows 8.1 和早期版本的受支持 Windows 的客户。

与上一部分中列出的Windows 10.NET Framework更新类似,下表中列出的更新包含以前发布的更新中已包含.NET Framework的所有日语时代更新,以及一个新的质量更新,用于删除使用单引号输出 Gannen 字符的依赖项在日本时代格式中。

这些更新不包括以前发布的更新中尚未包含的任何新的安全更新或新的其他质量和可靠性改进,但单引号问题的更新除外。 因此,依赖于“仅安全 (SO) 更新”和“每月汇总” (MO) 更新(适用于Windows 8.1和早期受支持的 Windows 版本)的用户也可以为新的日本时代选择这些更新。 这些更新仅通过 Windows Server 更新服务 (WSUS) 和Windows 更新目录提供。

.NET Framework Windows Server 2008 Windows 7 /Windows Server 2008 R2 Windows Server 2012 Windows 8.1 / Windows Server 2012 R2
.NET Framework 3.5 4488661 4488662 4488660 4488663
.NET Framework 4.5.2 4488669 4488669 4488668 4488667
.NET Framework 4.6 或更高版本 4488666 4488666 4488664 4488665

重要

在 Windows 7 Service Pack 1 (SP1) 上安装更新4488669后, Windows Server 2008 R2 Service Pack 1 (SP1) 或 Windows Server 2008 Service Pack 2 (SP2) ,.NET Framework从版本 4.5.2 升级到版本 4.6 或更高版本后,.NET 应用程序可能无法启动。 Microsoft 正在努力解决此问题,并将在即将发布的版本中提供更新。 有关详细信息,请参阅 知识库4488669

在.NET Framework上测试新的日本时代

对于知识库文章表中的所有.NET Framework版本,以及对于在 Windows 上运行的 .NET Core,日历时代信息由 Windows 操作系统提供,并在应用.NET Framework更新时从系统注册表中检索。 为了更轻松地为日本时代的更改做准备,可以控制何时向系统添加占位符注册表项,并选择满足需求的计时。 目前,以下系统支持 Windows 操作系统的占位符注册表:

  • Windows 客户端:Windows 7 SP1 及更高版本
  • Windows Server:Windows Server 2008 R2 SP1 及更高版本

注意

我们将为 Windows Server 2008 SP2 和 Windows Embedded & IoT、Windows Embedded Compact 7 及更高版本、Windows Embedded Standard/POSReady 7 及更高版本以及 Windows 10 IoT 提供其他新的日本时代更新。

Windows 的更新将在知道纪元名称和缩写的纪元名称后,将新的纪元值添加到注册表。 Windows 上的 .NET 将自动反映此更新。

  • 宽松的纪元范围检查

    此测试方案是在将新纪元转换设置为未来日期时验证 LOB 应用程序是否正常工作。

    特定时代的日期可以“溢出”到以下时代,默认情况下 ArgumentOutOfRangeException 不会引发 或 FormatException 。 将 的值 Switch.System.Globalization.EnforceJapaneseEraYearRanges 设置为 true 时,可以还原严格的纪元检查。

  • 一个时代的第一年

    此测试方案是验证作为新日本日历时代第一年的格式设置操作中的 Gannen (元年) 约定。

    默认情况下,.NET 在格式设置操作中采用 Gannen (元年) 约定。 可以还原以前的行为。 该行为始终将年份表示为“1”,而不是 Gannen (元年) 。 为此,请将以下值设置为 true

    Switch.System.Globalization.FormatJapaneseFirstYearAsANumber

日本时代支持的功能

  • 更新数据源

    日本时代信息最初在 .NET Framework 3.5 和更低版本的 .NET Framework 中维护为硬编码数据,但与.NET Framework 4.0 及更高版本类似,日本时代的源已从专用硬编码数据更改为注册表路径下的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras注册表项。 Windows 更新将在新纪元的名称公布后添加注册表项。

  • Range-放宽

    当平成 (平成) 时代于2019年4月30日结束,即平成 (平成) 31日,新纪元从2019年5月1日开始:::no-loc text=“”平成31年5月1日“::: 变为无效。 我们放宽了分析程序,允许 .NET 应用程序中) 公历和日本日期 (将来或过去日期转换为相关的日本时代日期,而不会引发 和 System.FormatExceptionArgumentOutOfRangeException异常。 一旦宣布新的日本时代名称,你还将能够将平成的未来日期转换为新的日本时代。 可以在.NET Framework中禁用它。 通过将 的值 Switch.System.Globalization.EnforceJapaneseEraYearRanges 设置为 true

  • 甘宁 (元年 日本时代第一年的)

    在历史实践中,该时代的第一年,使用一个特殊字符“甘 (元) ”,其汉字表示“起源”或“开始”,以代替数字“Ichi (1) ”。 第一年“甘宁 (元年) ”一直持续到公历年结束日期,即12月31日。 .NET Framework在第一年支持“甘宁 (元年) ”和“伊钦宁 (1 年) ”。 对于所有版本的 .NET Framework,Gannen 默认为 ON。 可以通过将 的值 Switch.System.Globalization.FormatJapaneseFirstYearAsANumber 设置为 true 来禁用它。

以前发布的更新

客户只需安装上面知识库文章中列出的最新更新,.NET Framework日本时代更新部分的版本或来自 Windows 更新、Windows Server 更新服务 (WSUS) 或 Windows 更新 目录的版本。

.NET Framework Windows Server 2008 Windows 7 /Windows Server 2008 R2 Windows Server 2012 Windows 8.1 / Windows Server 2012 R2 Windows 10 1507 Windows 10 1607 (周年更新) /Windows Server 2016 Windows 10 1703 (创意者更新) Windows 10 1709 (Fall Creators Update) Windows 10 1803 (2018 年 4 月更新) Windows 10 1809 (2018 年 10 月更新) Windows Server 2019
更新数据源
.NET Framework 3.5 4457007 4457008 4457006 4457009 4471323 4457127 4457141 4457136 4458469 必要 必要
.NET Framework 4.5.2 必要 必要 必要 必要 不适用 不适用 不适用 不适用 不适用 不适用 不适用
.NET Framework 4.6 或更高版本 必要 必要 必要 必要 必要 必要 必要 必要 必要 必要 必要
宽松的纪元范围检查
.NET Framework 3.5 4457007 4457008 4457006 4457009 4471323 4457127 4457141 4457136 4458469 必要 必要
.NET Framework 4.5.2 4457019 4457019 4457018 4457017 不适用 不适用 不适用 不适用 不适用 不适用 不适用
.NET Framework 4.6 或更高版本 4457016 4457016 4457014 4457015 4467680 4457127 4457141 4457136 4458469 不适用 不适用
一个时代的第一年
.NET Framework 3.5 4459933 4459934 4459932 4459935 4471323 4467691 4467696 4467686 4467702 4470502 4470502
.NET Framework 4.5.2 4459945 4459945 4459944 4459943 不适用 不适用 不适用 不适用 不适用 不适用 不适用
.NET Framework 4.6 或更高版本 4459942 4459942 4459940 4459941 4467680 4467691 4467696 4467686 4467702 4470502 4470502

其他资源