[廚餘回收] Visual Studio 2017 的目標 Framework 不見 .NET Standard 2.0

.NET Standard 2.0 算是目前在 .NET 生態系裡面,如果要開發類別庫的話,在新穎跟通用之間取得平衡之下,大家折衷過後比較會選擇的版本,這一天我打開 Visual Studio 2017 要維護以前開發的一個 .NET Standard 2.0 專案,突然發現「目標 Framework」不見 .NET Standard 2.0 的蹤影。

先確定有安裝有 .NET Standard 2.0 的 .NET Core SDK 最新版本,基本上 3.0 以上 Visual Studio 2017 是不支援的,所以目前 Visual Studio 2017 能安裝的 .NET Core SDK 最新版本止步於 2.1.524。

確定該安裝的有安裝之後,開始在網路上搜尋有沒有人有跟我一樣的問題,大部分遇到的都是該安裝的 SDK 沒裝,只有其中一個跟其他人不太一樣,是環境變數中 dotnet sdk 路徑順序的問題,不過我環境變數中的順序跟他所建議的是一樣的。

繼續在網路尋找解決方法,其中在 MSDN 論壇有一篇引起了我的注意,它的答案寫了一段話:

If your OS version is x64, please try to download the v3.0.100-preview3 SDK x86 version to install and test it.

我心裡想會不會是 x86 跟 x64 的差異?於是乎我改安裝 .NET Core SDK 2.1.524 (x86)

裝完之後,狀況依舊,Visual Studio 2017 的目標 Framework 還是看不到 .NET Standard 2.0,就在百思不得其解,問題陷入膠著之際,我抱著姑且一試的心態,綜合剛剛環境變數順序的建議,嘗試反向操作把 C:\Program Files (x86)\dotnet\ 上移到 C:\Program Files\dotnet\ 的前面。

它出現了!.NET Standard 2.0 出現在目標 Framework 裡面了!

這個就真的不知其所以然了,從以前到現在也都是一路更新上來,不知道在何時的哪一次更新造成了 .NET Standard 2.0 消失在目標 Framework 清單的問題,而且環境變數的順序一調整,換 Visual Studio 2019 找不到 .NET Standard 2.0 了,這次就先暫時用調整環境變數順序的方式來維護既有專案,之後應該會把 .NET Standard 2.0 的舊專案全升級到 Visual Studio 2019 來開發,如果有朋友知道問題原因,也知道如何正確修正的,還請不吝告知。

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學