上次修改时间:2021 年 6 月 22 日
发布日期:2021 年 4 月 26 日
为什么Microsoft终止对 .NET Framework 4.5.2、4.6 和 4.6.1 的支持?
.NET Framework以前使用使用安全哈希算法 (SHA-1) 的证书进行数字签名。 SHA1 - 是一种旧的加密哈希算法,不再被视为安全。 我们将停用使用数字证书签名的内容,这些证书使用 SHA1 来支持不断发展的行业标准。
在查看不同版本的.NET Framework的下载和使用数据后,我们发现,更新 .NET Framework 4.6.2 和更新版本以支持较新的数字证书 (安装程序) 将满足绝大多数 (98% ) 用户,而无需进行更改。 使用 .NET Framework 4.5.2、4.6 或 4.6.1 的一小部分用户需要升级到更高版本的.NET Framework才能继续受到支持。 无需重新编译应用程序。 鉴于这一变化的性质,我们决定以.NET Framework 4.6.2 及更高版本为目标,是支持和努力的最佳平衡。
有关详细信息,请参阅此有关 停用 SHA-1 内容 的支持文章。
如何实现知道我是否安装了这些版本?
请参阅确定安装了哪些.NET Framework版本一文。
我仍在使用这些版本,该怎么办?
如果使用 .NET Framework 4.5.2、4.6 或 4.6.1,则需要升级到更新的运行时版本,至少.NET Framework 4.6.2,最好.NET Framework 4.8。 请注意,只需更新应用运行的已部署运行时。 不需要重新生成应用来重新定位较新版本。
将应用部署到Azure 应用服务,是否需要执行任何作?
.NET Framework 4.8 已部署在 Azure 应用服务 中,因此,如果在 Azure 应用服务 运行 Web 应用或 Azure 函数,则无需执行任何作,则已在使用最新的 4.8 版本。
我在 Azure 中使用虚拟机,是否需要执行任何作?
我们正在与合作伙伴团队合作,确保更新未附带至少 4.6.2 的 OS 系列来宾 VM 映像,以包含此映像,并预计在 2022 年 4 月之前,当我们停止支持 4.5.2、4.6 和 4.6.1 时,此映像将可用。 在 2022 年 4 月之前,可以继续使用 .NET Framework 4.5.2、4.6 和 4.6.1,并将受到完全支持。 也就是说,如果想要立即开始在较新的运行时版本上验证应用程序功能,可以使用本指南在 Azure 云服务 上安装 .NET Framework。
我的应用部署在使用 Windows Server Update Services (WSUS) 或 System Center Configuration Manager (SCCM) 管理的企业环境中,我该怎么做?
最新的 .NET Framework 运行时 - 4.8 在 Windows 更新、Windows Server Update Services (WSUS) ,以及适用于客户端作系统的 Microsoft Update (MU) 目录以及适用于服务器作系统的 WSUS 和 MU 目录。
我可以使用哪些资源来帮助执行此作?
下面是一些可能有用的资源:
Windows Embedded 8 是否支持.NET Framework 4.5.2、4.6 或 4.6.1?
.NET Framework 4.5.2、4.6 和 4.6.1 将于 2022 年 4 月 26 日终止支持,包括在 Windows Embedded 8 上使用此功能的客户。 使用这些.NET Framework版本的客户应计划升级到更新的运行时版本,至少.NET Framework 4.6.2,最好.NET Framework 4.8。
我在 Windows Server 2008 上使用 .NET Framework 4.5.2、4.6 或 4.6.1。 应该执行什么操作?
以前.NET Framework 4.6.1 及更低版本支持Windows Server 2008,但.NET Framework 4.6.2 及更高版本不支持。 作为此终止支持更新的一部分,.NET Framework 4.6.2 已更新为包含 Windows Server 2008 作为受支持的平台。 在 2008 Windows Server 上使用 .NET Framework 4.5.2、4.6 或 4.6.1 的客户应计划升级到 .NET Framework 4.6.2。
注意:.NET Framework 4.7 及更高版本不支持 Windows Server 2008。
我使用的是随 .NET Framework 4.6 附带的 Windows 10 2015 LTSC。 应该执行什么操作?
WINDOWS 10 企业版 LTSC 2015 随附.NET FRAMEWORK 4.6 内置于 OS 中。 此 OS 版本是 LTSC) 版本 (长期服务通道。 我们仍将为 Windows 10 企业版 LTSC 2015 中的 .NET Framework 4.6 提供支持,直至对该 OS 版本的支持结束(2025 年 10 月)。
.NET Framework 4.5.2 中是否有任何重大更改? 为何引入这些更改?
.NET Framework 4.5.2 中存在极少数与早期.NET Framework版本不兼容的更改。 我们称之为这些运行时更改。 我们仅在为了安全利益而绝对有必要时,为了遵守行业标准,或者为了纠正.NET Framework内以前的不兼容性,才包括这些更改。 此外,.NET Framework 4.5.2 中包含的少量更改只有在选择针对 .NET Framework 4.5.2 重新编译应用程序时才会启用这些更改;我们将这些更改称为重定向更改。
可在此处找到有关应用程序兼容性的详细信息,包括 .NET Framework 4.x 系列中不同版本的 .NET 运行时和重定向更改。
是否需要重新编译/重新生成应用程序才能使用 .NET Framework 4.6.2 及更高版本?
.NET Framework 4.6.2 及更高版本在以前的 .NET Framework 4.x 版本(包括 4.5.2、4.6 和 4.6.1)的基础上兼容就地更新。 这意味着,我们希望基于以前的 .NET Framework 4.x 版本构建的应用程序将继续在 .NET Framework 4.6.2 及更高版本上运行,且不会发生任何更改。 无需重新编译应用以面向这些版本,只需更新运行时版本。 建议在部署到生产环境之前,在较新的.NET Framework运行时版本上测试应用程序功能。
我使用 ClickOnce 或 Visual Studio 安装程序 项目部署 .NET Framework 4.6.2 或更高版本作为应用的先决条件,我该怎么办?
.NET Framework 4.6.2 及更高版本的安装程序已重新生成,因此,如果使用引导程序将 .NET Framework 4.6.2 或更高版本部署为应用的先决条件,则需要更新 Product.xml 和 Package.xml 文件中的 PublicKey 属性,以便 ClickOnce 引导程序正确检测更新后的 .NET 安装程序包。
Product.xml 用于英语产品,并且位于引导程序版本的根目录中。 例如,对于 .NET Framework 4.6.2,此文件将位于 %ProgramFiles (x86) %\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX462\下。
还可以在区域设置特定文件夹下找到多个 Package.xml 文件,这些文件用于将.NET Framework语言包与应用程序一起部署。
需要将 Package/PackageFiles/PackageFile 元素的 PublicKey 属性的值更新为此值:
3082010a0282010100b6bb19591000a3a9f1e4b85ca80b07cbdb9a1f23d0d958ab78c048f7241438f063edd54b03bfcdf809ca1450f327b3fe82b4fa1a4384e1cbf91b38e83fcc9027ac97a2310a917b62ec75bfcd488da05d75fd95a775ff23d40ce5e8e063703e35ead49662f87655f756d4afa663cde3e3d60f9b7a9b2a77f1c2d5749c8f47d3dda0312d1ca4252cc4c4406653d792cae3b052eabe0ab8ae750b5618c74953ae74bff2a6cdf338e98ea5a3f3029e7a6fcf7cc42fb3cc754770aa3fe7621186dd45482f15fbb4074c6f3ecb37ee96388a53d40e35af06a83959effbc51af781f0863666bb54bbdf2795ed1659371a2111e8098bd618b2c5daed465452408203e2a70203010001 请注意,Product.xml 中有两个 //Package/PackageFiles/PackageFile 元素的实例,每个 Package.xml 文件中都有一个实例。 所有实例都需要使用正确的 PublicKey 进行更新。
有关此内容的详细信息,请参阅有关 创建引导程序包 的文章。
如果使用另一个引导程序(如 WiX 引导程序 (Burn) 请参阅用于安装.NET Framework先决条件的 Burn 文档了解详细信息。
我使用 .NET Framework 3.5 SP1 - 是否可以继续使用?
.NET Framework 3.5 SP1 的支持生命周期没有变化。 有关 .NET Framework 3.5 的具体终止支持信息,请参阅此网站。
我的应用程序会重新分发将来将不支持的.NET Framework安装程序版本。 应该执行什么操作?
应计划将受支持的 .NET 运行时安装程序 (4.6.2 或更高版本) 与应用的下一个计划更新配合使用。 如果应用程序位于最终用户从 Windows 更新 接收更新的环境中,则其计算机很可能已在 .NET Framework 4.8 上运行应用,因为.NET Framework 4.8 已通过 Windows 更新 广泛部署。 如果你的应用在Windows 更新被阻止或不可用的环境中使用,则如果你的应用安装程序不为应用执行此作,则应用的最终用户可能需要自行部署 .NET Framework 4.6.2 或更高版本。
我使用依赖于.NET Framework的 Exchange Server、SQL Server 或 Sharepoint 等Microsoft产品。 是否需要对这些产品进行更新?
较新版本的产品(如 Exchange、SQL Server、SharePoint 等)基于.NET Framework 4.6.2 或更高版本。 .NET Framework 4.6.2 及更高版本在以前的 .NET Framework 4.x 版本的基础上是兼容的就地更新。 这意味着,当 .NET 运行时从 .NET Framework 4.5.2、4.6 或 4.6.1 更新到更高版本时,在 .NET Framework 4.5.2、4.6 或 4.6.1 上运行的旧版应用程序将继续运行,且不会进行任何更改。 也就是说,我们建议先在预生产环境中将 .NET 运行时更新为 .NET Framework 4.6.2 或更高版本,然后再在生产环境中推出较新版本,从而验证部署。
我使用安装 .NET Framework 4.5.2、4.6 或 4.6.1 的其他软件供应商的产品。 应该执行什么操作?
如果计算机从 Windows 更新 接收更新,则计算机很可能已在 .NET Framework 4.8 上运行应用,因为.NET Framework 4.8 已通过Windows 更新广泛部署。 如果在Windows 更新被阻止或不可用的环境中使用应用,则应联系应用程序供应商,了解部署.NET Framework 4.6.2 或更高版本的应用程序的更新版本。
.NET Framework的支持生命周期策略是什么?
有关每个版本的.NET Framework的具体支持终止日期,请参阅此站点。
这是否会影响 .NET Core 和 .NET 5 或更高版本?
不。 公告的范围是.NET Framework 4.5.2、4.6 和 4.6.1。 .NET Core 和 .NET 5 的支持生命周期没有变化。