微軟在最新的Visual Studio 2019 16.3版本,於CSProj專案系統加入一個新的載入方法,稱為部分載入模式(Partial Load Mode,PLM),這模式讓Visual Studio 2019,在解決方案載入之後,使專案系統得以於設計時間(Design Time)在背景建置專案,並同時維持使用者介面的回應性和互動能力,而微軟提到,這項改變將會影響部分擴充套件的運作。

現在CSProj專案會阻擋使用者介面執行緒,以等待設計時間(Design Time)的建置,和Roslyn初始化工作,之後才會開始專案載入事件,而為了進一步減少解決方案載入的時間,CSProj會在評估(Evaluation)程序之後,馬上觸發專案載入事件,讓解決方案總管來得及顯示專案樹,也為Roslyn提供專案和程式碼檔案。

由於設計時間建置會使用背景執行緒執行,而這代表解決方案載入到設計時間建置結果準備完成之前,IntelliSense、程式碼導覽和Designer等功能,都會處於部分載入模式,微軟提到,由於解決方案載入速度很快,因此大部分開發者不會察覺有什麼改變。

不過,當擴充套件在解決方案載入之後,馬上呼叫Roslyn API,則可能導致錯誤,因為在呼叫Roslyn API時,Roslyn還不知道專案參照,所以部分載入模式可能會回傳不完整的程式碼模型,為此微軟提醒,開發者應該測試擴充套件,並在必須時進行更新。

雖然微軟認為,這項變動不會造成擴充套件生態系太大的衝擊,但可能會對個人擴充套件有比較大的影響。


Advertisement

更多 iThome相關內容