1. 程式人生 > >vs2010/2013專案所在資料夾越來越大如何解決?

vs2010/2013專案所在資料夾越來越大如何解決?

vs2010/2013專案所在資料夾越來越大如何解決?

轉載:http://www.cnblogs.com/web100/archive/2012/12/21/vs2010-ipch-sdf.html

=================================================================

使用VS2010建立C++解決方案時,會生成SolutionName.sdf和一個叫做ipch的資料夾,這兩個檔案再加上*.pch等檔案使得工程變得非常的龐大,一個簡單的程式都會佔用幾十M的硬碟容量,可惜畢竟硬碟還沒有廉價到免費的地步。

那麼,該怎麼解決呢?其實可以關閉它。方法:

Tools->Options->Text Editor->C/C++->Advanced->Disable Database,設定為True

但是這樣的辦法會產生另外的一些問題,可能會導致其他的一些功能不能使用。另外一種解決方法是:

Tools->Options->Text Editor->C/C++->Advanced,在 Fallback Location 的屬性組中,將"Always Use Fallback Location"設定為 true,將"Do Not Warn If Fallback Location Used" 設定為 true ,然後刪除解決方案目錄下的 sdf 檔案和 ipch 目錄,再次開啟解決方案,發現這些煩人的東西已經不見了。

那麼那些檔案放置到那裡了呢?看 "Fallback Location" 屬性說明:這是儲存瀏覽資訊資料庫和 IntelliSense 檔案的第二個位置,如果不指定則放置到臨時目錄中;到臨時目錄一看,裡面有一個 VC++ 的目錄,都在那個目錄裡面呢。

可以在 "Fallback Location" 屬性中,設定一個固定的路徑來儲存這些檔案,比如D:\VS2010Temp,這樣也比較好管理這些龐大的臃腫的檔案,可以定期清理掉它們,釋放出硬碟空間!

 

       昨天上班時突然碰到一個很奇怪的問題,我將一個工程目錄剪貼至其他目錄下後,用vs 2010再次開啟該工程時, 右鍵選單中的“go to definition”無法正確的工作。例如在一個使用函式getExtensionMode的地方按下快捷鍵F12鍵,彈出包含如下的Message Box:

 

但是明明那個函式的定義就在那個原始檔裡面。同樣的問題也出現在同一個solution的其他檔案中,這樣造成檢視程式碼很不方便,嚴重影響工作效率。

通過網上一番搜尋之後,終於找到了出現上面情況的原因,工程目錄中的ipch資料夾和.sdf檔案不能正常工作。解決方法:關閉開啟的工程,接著把工程目錄下的ipch目錄下所有檔案和所有.sdf檔案都刪除,然後用VS 2010重新開啟工程,讓vs 2010重新生成那些檔案,這樣就可以使用F12快捷鍵了。

其實ipch和sdf分別是Visual Studio 2010用來儲存預編譯標頭檔案和Intellisense資訊的地方,對工程本身的功能沒有影響,只是用來加快編譯和便於程式碼提示。但是這部分檔案通常都會佔用比較龐大的磁碟空間,所以在拷貝或轉移工程專案時可以把這部分檔案先刪掉。

有一種方法可以讓這部分輔助檔案不包含在工程專案目錄下,減小工程專案的佔用的磁碟空間,但同時又能利用這些檔案帶來的便利,那就是通過設定把他們統統放到一個獨立於工程目錄的fallback location中。在Visual Studio 2010裡進入如下設定:進入“Tools > Options”,選擇“Text Editor > C/C++ > Advanced”,然後找到“Fallback Location”。然後把“Always use Fallback Location”和“Do Not Warn if Fallback Location”設定成“True”,並且在“Fallback Location”中設定放置該型別檔案的路徑,如下圖:

 

這樣所有工程專案的預編譯檔案和code Intellisense資訊就都放在c:\vs 2010 Intellisense\資料夾下了。

想了解更多的關於.sdf檔案的資訊,可以參考 http://blogs.msdn.com/b/vcblog/archive/2009/05/27/rebuilding-intellisense.aspx

 

補充一下,上圖對應中文版的引數設定如下圖所示:

vs2010/2013專案所在資料夾越來越大如何解決?
 

以後及時刪除e:\VS_temp下面的資料夾和檔案就可以了!