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度「好吧!看你可憐,我再幫你一次,下不為例哦~」,網頁開發者等這一天應該很久了… (謎:接洗謀摳零A代誌,快醒醒呀孩子)
但,第三項讓人毛毛的。啥?微軟不再支援.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