2010-03-02 72 views
1

我有一個Visual Studio 2008項目,其中包含在預生成步驟中代碼生成的文件。源代碼管理中不應包含這些文件。我無法預測將會有多少個文件或它們的確切名稱。 生成的文件將包含通過通配符指令Visual Studio項目文件:Visual Studio:如何從源代碼管理中排除整個目錄?

<ItemGroup> 
    <Content Include="CodeGen\*.xaml"/> 
    </ItemGroup> 

的Visual Studio標誌着所有生成的文件作爲「新源頭控制」,這樣,當你不小心,你將通過「源代碼管理>>排除源代碼管理中的選擇」來排除源代碼管理中的文件,唯一改變的是csproj.vspscc文件;在裏面,還有每個文件一行和計數器:

"NUMBER_OF_EXCLUDED_FILES" = "2" 
"EXCLUDED_FILE0" = "CodeGen\\File1.xaml" 
"EXCLUDED_FILE1" = "CodeGen\\File2.xaml" 

我正在尋找的是一個方法,從源頭控制中排除所有的代碼生成的文件,使Visual Studio將無法識別的文件「新」或「改變」,無論文件夾的內容是什麼。

源代碼管理是Perforce。

回答

4

您可以在Perforce中修改您的工作區規範,以自動忽略某些文件或目錄。假設你的項目名稱爲Foo和您的工作區名爲酒吧,你可以有

//depot/Foo/... //Bar/... 
-//depot/Foo/CodeGen/... //Bar/CodeGen/... 

凡負號表示該行指定的文件/目錄忽略,而三段指根據所有文件和目錄路徑。

我假設這會導致這些文件被忽略,即使Visual Studio試圖添加它們。我沒有使用過Perforce/Visual Studio集成,所以我不確定。

+1

試過:Visual Studio仍然認爲文件是新的,但Perforce不會讓你檢查它。所以這是一個部分解決方案;此外,所有用戶(> 20)都必須在所有代碼分支(> 10)中修改其工作空間......雖然比以前好很多,但是,謝謝 – GreenIcicle 2010-03-03 13:47:53

+0

@GreenIcicle:您可能可以設置服務器端觸發器從提交的文件列表中剝離具有給定路徑元素(「CodeGen」)的文件。這將解決你的問題,這麼多的用戶和工作區,但我從來沒有使用過服務器端的東西,所以我不知道它是如何工作的。 – 2010-03-03 15:29:51

相關問題