2011-12-11 73 views
12

MS Visual Studio有解決方案資源管理器,我可以在其中查看所有項目文件,我也可以創建類似文件夾的過濾器,以便將它們保存在一個組中。問題是 - 我希望我的文件在Visual中和物理上分在我的磁盤上。但我不想在Visual和磁盤上都應用兩次更改。有沒有什麼辦法可以顯示實際的文件夾,我可以在Visual Solution Explorer中將文件保存在磁盤上(並且不顯示所有文件,我剛剛檢查過)?Visual解決方案資源管理器中的實際文件夾?

+0

對於我來說,「顯示所有文件」的作品,如果該項目文件中的所有源文件的父文件夾,但如果項目文件在其自己單獨的文件夾。 – entheh

回答

4

否 - SE和備案制度持有的結構/層次結構信息的獨立拷貝。

我通常會禁用過濾器並將文件放在我想要的地方,這樣兩個結構默認保持同步(事實上,如果您想擁有任何類型的源代碼組織,總是將組件的文件分組到不同的文件夾中)。

然後(禁用過濾器)...

如果您在Solution Explorer中的文件夾,並使用上下文菜單從該文件夾「添加新項...」或「添加現有項目」,然後磁盤結構將反映解決方案資源管理器(現有項目被複制而不是從他們當前所在的位置引用來確保這一點,如果您將其添加到錯誤的SE文件夾中,可能會導致文件的舊副本留在項目周圍)。否則,通常只有當您「添加爲鏈接」時,VS纔會將某個項目放入SE中的其他文件夾中,而不會出現在磁盤上。

整理東西,最簡單的方法是(製作備份以防萬一以後):

  • 打開解決方案和文件探險家和手動「差異」他們。這是「錯誤的」的任何文件應該從SE被刪除,移動到正確的磁盤位置,然後使用上下文菜單正確的SE文件夾加入SE
  • 如果沒有太多的文件夾,一個簡單的方法是剛剛從Solution Explorer中刪除所有文件,然後將它們添加(每次一個文件夾)回項目,確保您在創建正確的文件夾名稱去,並從每個文件夾的上下文菜單添加。通過從頭開始重建SE,您可以很快地同步這兩種佈局,而且這往往比試圖找出差異所在的位置更容易。

一旦它們同步,只能使用SE來管理文件,並且要小心使用正確的文件夾中的上下文菜單添加項目。如果你在磁盤上移動東西,你會破壞鏈接。

+1

請注意,這僅適用於C/C++項目。 C#項目確實具有文件的1對1映射。 –

+0

@Sebastiaan:是的,我可以想到兩個例外:1)當你把文件添加爲「鏈接」時,它們不需要1:1的映射(但是這些映射顯示爲明顯的鏈接圖標)。2)1:1映射適用於項目內,但項目本身(解決方案內)不需要1:1路徑映射。 –

2

如果單擊「顯示所有文件」從顯示的文件的物理過濾的文件虛擬濾波器開關解決方案資源管理器。

+2

OP在問題中已經聲明這個解決方案不起作用。 – psubsee2003

0

通過過濾器我想你指的是解決方案文件夾。這些虛擬文件夾與文件系統無關。我做的一個訣竅是製作一個扔掉的項目。添加到項目文件夾的項目保持其關係。這是一個黑客,但它的工作。如果有人知道這種做法不太古怪,我也很想知道。

相關問題