Visual Studio 2019之要不要試試SLNF?

本文關於VS2019的技巧適用於大型項目的開發,如果僅僅是小型項目的開發,大概率可以跳過本文。

大型項目有多大?

你遇到的使用VS開發的解決方案(Solution)最多的包含多少個工程?十多個,上百個還是上千個?這個應該是根據項目的內容和複雜度決定的,每個人遇到的情況都不一樣。所以我也不知道這個問題的答案。當一個VS解決方案(Solution)中包含了過多的項目(Project)時,那麼架構師就應該考慮是不是應該拆分項目為不同的解決方案。在我的開發經歷中,我遇到的最大的一個Solution包含了200多個項目(Projects)。那麼當你打開一個包含很多Projects的Solution時,你的感受是什麼?

對,就是慢!

SLNF是什麼?

微軟也意識到了這個問題,並在VS2019中提出了一種解決方案。假設我的Solution當中包含了若干項目,如下圖所示。其中ClassLibrary1是我不關心的項目,那麼該怎麼辦呢?

請發揮想象,你正在工作於包含了200多個項目的Solution當中

首先你可以Unload這個Project,如下圖所示

從VS2019中Unload一個項目

之後可以右鍵單擊Solution文件,這樣就可以選擇"Save As Solution Filter"。

生成SLNF文件

下次你就可以雙擊打開這個保存的SLNF文件,確保你只打開你關心的項目。

通過SLNF來加載項目

如果需要查看已經Unload的項目,任然可以通過右鍵菜單

顯示所有未加載的項目

這樣效果就會如下圖所示,可以對unloaded的項目進行加載。

包含未加載項目的解決方案

提示

請確保你加載的項目對未加載的項目沒有依賴。否則可能加載失敗或build失敗。如果你需要隱藏的項目比較多,可以在打開一個SLN文件是選擇Do not load project,之後再load需要關心的項目。

風一樣的速度,因為不加載任何項目

SLNF的內容

SLNF依然是文本文件(JSON格式),具體的內容如下圖所示。

SLNF內容

當然,如果需要的話,你依然可以將其上傳到代碼管理平臺,比如Git,和其他小夥伴共享你的設置。這樣前端開發,後臺開發,測試人員都可以只加載自己關心的項目。又或者,你該考慮重構幾個不同的解決方案了(Solution)?

作者關於VS2019的文章