在開發一個大型專案裡面,通常會有一堆小專案,彼此之間可能還會有很複雜的相依性;在 Visual Studio 裡,微軟是透過一個「方案」(solution、附檔名是 sln)來管理多個「專案」(project)的形式來做的,在開啟方案後,就會把所有的專案都載入。
但是實際上,大部分要開發的時候,其實都是針對特定專案來進行,其實只需要和他有關的專案就可以了,並不需要真的把所有的專案都載入。
為了這種需求,微軟其實有提供「方案篩選」的功能(官方文件),讓開發者可以在不修改方案的情況下,自行設定要載入那些專案、並儲存成一個 Solution Filter(副檔名是 slnf)的檔案,方便日後使用。
透過這樣的機制,就可以讓使用者只開啟自己需要的專案,來方便使用;在個人來看,對於大到一定程度的方案,這個機制算是滿實用的!
- 在現行方案中,將不想要/不需要的專案都卸載
- 在「方案總管」中,選取方案後按右鍵,選取「另存為解決方案篩選」(右圖)
這樣就可以了~
這樣一來,以後只要開啟這個儲存下來的 slnf 檔案,就可以用僅顯示次有載入的專案的模式來進行開發了!
而實際上 slnf 裡面還是去參考本來的 sln 檔,所以方案本身有調整過,這邊也會跟著反應,不用擔心以後得維護兩個地方。
而如果僅要針對單一專案、還有他需要的專案來做開發的話,其實比較快的方法應該會是:
- 先卸載所有專案
- 找到自己要的專案,選取後按右鍵,選取「重新仔入具有相依性的專案」
如此一來,Visual Studio 就會根據方案中專案相依性的設定,來讀取這個專案需要的專案了。
像是以 OpenCV 本來有 102 個專案來說,在僅針對「opencv_highgui」這個專案來讀取的話,就會變成只會讀取、顯示 24 個專案了!
如此一來,不但可以加快方案的讀取速度,在編輯時要跨專案找檔案,也會更為方便~
而由於 Solution Filter 會存成一個一個的 slnf 檔案,所以團隊的每個開發者,也都可以各自針對需要來建立自己的 Solution Filter、而不用擔心影響到本來的方案。