如何在.NET Framework 4.8的Console專案中,使用C#新版本編譯器及語法

被微軟拋棄的.NET Framework到最終4.8版本後,標準可以使用的C#版本為C# 7.3,詳見:C# 語言版本控制 / Configure Language Version。那麼,是否可以在.NET Framework 4.8 Console專案中使用更高的C#版本語法呢(C# 8.0、C# 9.0 ...)?其實是可以的,只是被微軟封印起來,這篇文章教你怎麼開啟。

在.NET Framework 4.8 Console專案中使用C#新版本編譯器及語法

Step 1. 決定好你要使用的C#版本號,以及對應的Microsoft.Net.Compilers.Toolset版本號,以現在的時間來說,C# 9.0最後的Roslyn版本號是3.11。

Step 2. 在Visual Studio啟用nuget下載,鍵入「Microsoft.Net.Compilers.Toolset」,選擇要安裝的版本號並套用到你想套用的專案。

Step 3. 接下來有很多網站都會教你去「專案>屬性視窗>建置>進階」下拉選擇C#編譯器版本號,但這個步驟在我們現行的4.8環境中基本上是沒用的,至少在Visual Studio 2022進去後會發現被鎖定成「根據架構版本自動選取」,如下圖:

Step 4. 正確的作法是去找到你這個專案的設定檔(*.csproj),用編輯器打開後找到「PropertyGroup」節點,並在裡面添加「LangVersion」元素。至於LangVersion裡面要填寫的值,一樣可以在這個網頁:C# 語言版本控制 / Configure Language Version找到資訊,若不想花腦筋的話,建議填寫「latest」即可。

XML代碼整理如下:

<PropertyGroup>
  <LangVersion>latest</LangVersion>
</PropertyGroup>

Step 5. 新增完後儲存,重新開啟Visual Studio,就可以發現可以使用你想要用的新版C#語法與編譯器了。

Microsoft Visual Studio .NetFramework 4.8 4.7 Console C#Version C#NewestVersion C#NewestCompiler C#NewestSyntax C#8.0 C#9.0 C#10.0 C#11.0