應該都有過這樣的經歷,在Visual studio中創建解決方案,添加幾個項目進去,然后開始愉快的敲代碼...。寫代碼正歡的時候,卻總是感覺那里有些不舒服,一細看,這項目名稱取的真心挫,修改個吧。直接右擊項目名->重命名,修改一個讓自己舒心的名稱。然而,真的就這么簡單么。打開項目所在文件夾,怎么文件夾名字還是原來的那個啊,對于有強迫癥的人來說這是不能認的。改了!然而,重新打開解決方案卻發現,修改名稱的那個項目加載失敗...。具體如下圖
顯然,這么粗暴的修改是不行的。要想正確的修改項目的名稱,首先要明白Visual studio 各個文件的組織方式。在VS中,最頂級的是解決方案 Solution,其可以包含多個項目 Project,在Project中包含的就是源代碼(.cpp,.h)。只要是在VS下工作,至少有一個Solution和一個或者多個Project。當新建一個項目時,默認的會為該項目創建一個同名的解決方案,如下圖:
Solution Project
在VS中,Solution有一個相對應的solutionname.sln文件,該文件中保存了解決方案中包含的項目及項目所在的位置。每一個項目隊友一個對應的projectname.vcxproj,該文件中保存了項目的名稱,項目中包含的.h .cpp文件及其它一些項目的屬性。
上圖是sample.sln的內容,VisualStudioVersion=12.0指出該解決方案的是VS2013的,能夠打開該解決方案的最小版本MinimumVisualStudioVersion=10.0。后面就是該solution中包含的兩個項目GifGenerator和Threadsafe_queue,及其所在的位置。
上圖是Threadsafe_queue項目的vcxproj文件中ProjectName所對應的節點,直接右擊項目->重命名修改的只是這里的值。
修改項目名稱
直接右擊項目->重命名只是改了project的vcxproj文件中的ProjectName的值,而如果手動修改了項目文件夾的名稱,就會造成解決方案按照其sln文件加載對應的項目時,找不到正確的項目路徑,所以會加載失敗。
有了以上的描述,再來修改項目的名稱就簡單了,有以下幾個步驟:
- 右擊項目-> 重命名,修改一個高大上的名稱
- 修改項目對應的項目文件夾的名稱及其對應的vcxproj文件名稱
- 修改解決方案的sln文件,將項目名稱和項目路徑修改為正確的值。
Summary
一個VS項目看起來有很多文件,感覺雜亂無章。其中的很多文件是編譯器生成的(編譯器所需的自動提示,符號表等),真正構建一個解決方案的文件也就那么幾個。
如上圖,一個解決方案下有一個sln文件及其包含的兩個項目的文件夾。而每一個項目除了其所包含的.cpp .h源碼文件外,其余的就兩個projcetName.vcxproj是上面提到的project文件;另一個就是projectName.vcxproj.filters 文件,這個文件保存了在項目中的源代碼文件文件的分組情況,例如常見的頭文件,源文件,也可以添加自定義的分組,這些信息就保存在該文件中。有了這些了解以后,將項目托管到git上,就知道了那些文件應該push,那些文件應該ignore了。