1. 背景
前幾天微軟VS2019都出了,而還在使用VS2015的人怎麼說也該升級到2017了吧?但是升級很多時候都是一步步、一批批升級的。平滑過度、無縫遷徙才能讓大家慢慢的嘗試新的事物,最後喜歡上新事物。一旦大家都喜歡新的,那麼升級IDE還不是名正言順?
說到這裡在順道給大家安利一波我業餘搞的開源CRT庫,VC-LTL(Chuyu-Team/VC-LTL):
- 它能減少程序體積……
- 它能擺脫UCRT的折磨,那一坨坨
api-ms-win-crt-*
相貌的屎……
- 它能避免FLS上限問題!
- 最後,VC-LTL與微軟原版源代碼級別兼容,同時針對XP提供了更好的兼容性!
2. 我的想法
既然要推動升級,當然要先讓工程支持2017或者更高版本。現在主要有二個問題,一個是平台工具集
,還有一個是Windows SDK版本
。
我的想法很簡單,就是用VS2015打開時,平台工具集自動使用v140
。同理,2017打開時也自動使用v141
。同時自動使用當前電腦安裝的最高的SDK版本
。
這樣就避免了不同的人安裝了不同的編譯器、不同的SDK帶來的麻煩啦!
3. 最佳實踐
要實現上述效果其實並不複雜,下面鴨鴨來就具體說說怎麼做吧!
3.1. 自適應Windows SDK版本
在屬性頁 - 配置屬性 - 常規 - Windows SDK版本
填上$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion(Windows, 10.0)) 即可。
它將調用一個.Net的GetLatestSDKTargetPlatformVersion介面,獲取當前計算機中安裝的最高版本SDK。