停止.NET 4.0/4.5/4.5.1的技术支持?会对我的系统造成影响吗?
2016/1/12 是个大日子,有好几项微软产品结束技术支持,包含:
- Windows 8
- IE 8/9/10 (狂贺)
- .NET 4.0/4.5/4.5.1
周遭的 Windows 8 都已免费升级到 Windows 8.1 或 Windows 10,受影响者应该有限。而官方停止支持旧版 IE 是好消息,以后可以大声客户说我们不支持 IE 8/9/10,最后要不要支持是另一回事,但至少可以下巴抬高 45 度「好吧!看你可怜,我再帮你一次,下不为例哦~」,网页开发者等这一天应该很久了…
但,第三项让人毛毛的。啥?微软不再支持 .NET 4.0/4.5/4.5.1?那还没升级到 .NET 4.5.2 或 4.6 的项目会受影响吗?同事问了这个好问题,直觉微软不致让 .NET 技术支持周期政策严重冲击现行系统,但我没把握说不会,还是得查证才安心。
MSDN 部落格去年底在这篇文章提到 .NET 4、4.5、4.5.1 中止技术支持的细节:1/12 起将不再为 .NET 4.0/4.5/4.5.1 提供安全更新、代码修正(Hotfix)及技术支持,而 .NET 3.5/4.6/4.6.1 的技术支持周期可参考时间表。另外,这篇 FAQ 对 .NET 支持周期有更详细的说明,摘要重点如下:
2010 年 3 月起,微软宣佈自 .NET 3.5 SP1 起,.NET 被定义为附属元件(Component)而非独立产品,技术支持周期依其支持的作业系统制订。
2014/8/7,微软宣佈 .NET 4.0/4.5/4.5.1 自 2016/1/12 停止支持,建议开发人员升级至 4.5.2。而 .NET 4.5.2 比照 .NET 3.5 SP1,支持周期向其支持的作业系统看齐。
元件的定义:随附于微软产品的一组档桉或特性功能,可以与产品一起发行,也可能包含于 Service Pack、更新,透过网络下载发佈。
.NET 4.x 採行就地升级 In-Place Update 政策,基本上 .NET 4/4.5/4.5.1 会随 Windows Update 升级到 .NET 4.6.2。
.NET 4/4.5/4.5.1 停止支持不影响 .NET 3.5 SP1 的支持政策。
.NET 4.5.2 向前相容,故升级不影响既有 .NET 4.x 代码,不需要重新编译或做任何调整。仅有的例外是 .NET 4.5.2 存在极少数不相容修改,目的多半是为了符合业界标准或修正错误,真的遇上,除了调代码好像也不能怎么样。:P 不相容的项目可以看这里
另外,有些修改必须针对 4.5.2 编译才会生效,称为 Retargeting Change。清单看这里
针对 Exchange、SQL Server、Dynamics CRM、SharePoint、Lync 等使用 .NET 4 或 4.5 的产品,依据前述原理,更新 .NET 4.5.2 后产品不需配合更新。
随 Visual Studio 安装的 .NET Framework,其技术支持周期仍跟着 Windows 作业系而不是 Visual Studio。
【结论1】.NET 4.x 可就地升级成 4.5.2,而原有的 .NET 4.x 代码基本上不需做任何修改。
很好,那我们需不需要做什么确保 .NET 4.x 更新到 4.5.2?
由这篇文章,2015/1/6 起 .NET 4.5.2 已透过 Windows Update 开始部署, 使用 WSUS 的企业如暂时不想安装,IT 需修改 Registry 阻挡自动部署。(这篇 KB 提到修改 Registry 暂不升级的做法,亦为佐证)另外在这篇讨论里,网友提到 .NET 更新会被标成「重要」但不会主动强迫安装。
【结论2】使用者只要「定期安装"该装"的 Windows Update」应该都已升级 .NET 4.5.2
总结:只要有定期执行 Windows Update,Windows 应已更新至 .NET 4.5.2,而绝大部分 .NET 4.x 代码不需配合修改,故不用担心 .NET 4/4.5/4.5.1 停止技术支持对系统造成影响。
相关资源
Microsoft 支持周期:https://support.microsoft.com/zh-tw/lifecycle/search/default.aspx?sort=PN&alpha=.NET%20Framework&Filter=FilterNO
Microsoft .NET Framework Support Lifecycle Policy FAQ:https://support.microsoft.com/zh-tw/gp/framework_faq/en-us?wa=wsignin1.0
Runtime Changes in the .NET Framework 4.5.2:https://msdn.microsoft.com/en-us/library/dn720774(v=vs.110) .aspx
Microsoft To Deliver .NET Framework 4.5.2 Next Week:https://redmondmag.com/articles/2015/01/06/net-framework-4-5-2.aspx
How to temporarily block the installation of the .NET Framework 4.5.2:https://support.microsoft.com/en-us/kb/2971109