停止.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