not supported

有沒有電腦重裝 Windows 後,特別是 Windows 10,一些舊 ASP.NET 專案動彈不得的情況?如果有遇到以下的問題,這篇記錄或許可以提供參考。

Visual Studio 對 ASP.NET MVC 4 的支援

ASP.NET MVC 4 是從 Visual Studio 2012 開始提供的。
如果用 Visual Studio 2015 開 MVC 4 專案,它只會告訴你不相容,就不搭理你了。

安裝 Visual Studio 2012 2013 是一個方法,但這樣電腦上要裝很多套 Visual Studio。

用上 Visual Studio 2017 來開,它會問你要不要補上缺少的套件
,同意後它自動去下載回來安裝,之後就能順利開啟 MVC 4 專案。再也不用為了維護 MVC 3 MVC 4 的專案,特地安裝 VS2012 了!

無法安裝 .NET Framework 3.5

雖然 Windows 10 控制台中的 開啟或關閉 Windows 功能 中第一項就是 .NET Framework 3.5 (包括 .NET 2.0 和 3.0),但在我的環境中就是無法正確安裝,會出現錯誤代碼為 0x800F081F 的錯誤,當用 Visual Studio 2017 它會提示安裝,也一樣安裝失敗:

0x800F081F

網路上很多人有相同問題,微軟也有官方說明:
.NET Framework 3.5 安裝錯誤:0x800F0906、0x800F081F、0x800F0907
但 … 看不太懂。

方法一

這是我用的方法。因為先找到小工具才看到命令。

下載這個小工具
.NET Framework 3.5 Offline Installer for Windows 10 and 8.x

將 Windows 的安裝光碟放入光碟機或掛起 ISO 檔。

執行小工具,如以下畫面
小工具畫面

Select Installation Media 的地方選到安裝光碟所在的磁碟機,如果光碟沒問題,在第二欄的後面應該要出現 (Found),表示光碟有 \sources\sxs 目錄。
如果有問題,請確認光碟內容。

執行 Install 就會代為執行安裝命令,並完成 .NET Framework 3.5 的安裝。

方法二

即手動執行命令。

以系統管理者身分開啟命令提示字元,再執行以下指令:

1
DISM /online /enable-feature /featureName:NetFx3 /All /LimitAccess /Source:h:\sources\sxs

/Source: 後的 h: 即指向光碟路徑。

在小工具的 Advanced Install tab 中也可看到命令內容。

無法安裝 .NET Framework 4.0

Windows 10 安裝好 .NET Framework 就到 4.5 以上了,雖然 4.5 在執行上向下相容於 4.0,但在專案屬性的 目標 Framework 中是選不到 .NET Framework 4,從 3.5 就到 4.5 了,專案也開啟不了。

下載 .NET Framework 4.0 的離線安裝檔來安裝,則會跳出 4.0 已存在的訊息,無法繼續安裝。

我的方法是:

安裝 Visual Studio 2010

是的,安裝完 VS2010,.NET Framework 4 就回來了,專案也可正確開啟及執行。

ASP.NET MVC 3 升級到 MVC 4

這個和重裝 Windows 10 沒有直接關聯,但和專案環境調整有關,就一併提供給有需要的朋友。

NuGet 上有個套件 UpgradeMvc3ToMvc4,可以直接協助做遷移。

套件安裝後就直接遷移了,並沒有介面再做確認。
請在執行前先備份好原始專案,或是在備份上先試過OK再套用到正式專案上。

結語

如果只想裝一套 Visual Studio,Visual Studio 2017 是很好的選擇,它已可取代全部舊版的開發功能,持續改善中並加入新功能。近來更版很頻繁,最新已到 15.5 加上對 C# 7.2 的支援。

Visual Studio 2017 對舊專案的支援度提昇非常多,遇到還不支援的專案類型或套件,會提示去下載相關檔來安裝,接著很有可能就可以用了。

開過的專案在 Visual Studio 2015 也可順利開啟,不用擔心 VS 互通性的問題。

參考資料及圖片來源

  1. 主圖來源 pixabay
  2. .NET Framework 3.5 Offline Installer for Windows 10 and 8.x
  3. GitHub 上的 UpgradeMvc3ToMvc4