協同開發模式下,使用新版Visual Studio開發的陷阱

為了語法糖(Syntactic Sugar),安裝舊版本的Visual Studio?

時間在走,科技在進步,地表上最強的開發軟體當然也會升級,現在版本已到Visual Studio 2019,而C#已到7版(C# 8.0待發布),其開發效能也越來越好。
但是!! 越便民的代價就是會出現許多『語法糖(Syntactic Sugar)』。

為了增進開發效能,開發軟體與C#版本都會不斷的進化,原本要寫5行的程式碼,下一個VS的C#版本,變成只要變成一行就好,
剩下四行由IDE在執行編譯的時候自動長出來,這就是語法糖。

在協同開發的模式中,若大家的開發軟體版本一致的情況下,基本上,不太會發生語法糖。
但若有人是使用較新版的VS版本,去協同開發,語法糖就可能會化為糖衣下的毒藥,當其他成員取得程式碼,因開發軟體版本不一致,就會發生編譯錯誤。

舉例下列相同程式碼,在VS2017會編譯通過,在VS2013會編譯失敗。
範例是使用「$」進行格式化,此功能是C# 6.0才能編譯,因VS2013只能支援到C# 5.0,故無法編譯。

如果不知道C#各版本特性與功能的朋友們,若要維護舊專案,又怕寫出語法糖,豈不是要安裝舊版的VS嗎!!?? C槽空間都不夠了….
別擔心,下列方法可以讓新版的VS也能限制在指定的C#版本。
在專案屬性中選擇「建置」頁籤,點選下方的「進階」,就可以限制在編譯時,要使用哪一種C#版本進行編譯。

設定好後,VS2017編譯時就會失敗了,其下方也會顯示對應的錯誤訊息。

 

當進行這樣的設定後,連帶此專案的專案檔(.csproj),會被新增一行LangVersion,若有未來要升級,這邊要特別注意。

 

創用 CC 授權條款
本著作由Chenting Weng製作,以創用CC 姓名標示 4.0 國際 授權條款釋出。
This work by Chenting Weng is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at https://dotblogs.com.tw/chentingw.

部分文章內容會引用到其他網站的簡介或圖片,若有侵犯到您的著作權,請留言告知,本人會儘快移除。
免責聲明:文章屬個人記事使用,僅供參考,若引用文章造成一切損失,本人不承擔任何責任。如有錯誤,歡迎留言告知。

Part of the content of the article will refer to the profile or picture of other websites.
If there is any infringement of your copyright, please leave a message and let me remove it as soon as possible.
Disclaimer:The article is for personal use and is for reference only. I will not bear any responsibility for any loss caused by quoting the article. If there is an error, please leave a message to inform.