如何讓某個特定目錄的 DLL 元件預設出現在簽入清單中–.tfIgnore
前言
版本管控中基本上我們只會存放程式碼以及相關的檔案,這些檔案大多都是 .cs 檔、.prj 檔… 或是 JPEG 之類的圖檔。而 .DLL 檔則是我們的產出基本上我們不需要納入到版本管控中,亦或是特定系統產生的目錄我們也不需要進版控 像是專案中編譯產生的 bin 或 obj 目錄。但專案開始上我們都知道有些 DLL 可能是 3rd Party 引用的檔案我們會需要做統一的納管,在 2012 的版本之前我們只能用人工的方式一個一個把檔案納入。雖然工具也可以特別指定副檔名,但卻會造成所有檔案都有相同的規則這卻不是我們想要的效果。
我們專案可能會有一個特定的 Reference 的目錄,像我這裡就是用了 Enterprise Library 的DLL 元件,日後就不需要再安裝所有的項目。而這個目錄底下的 DLL 我都希望工具不要幫我自動 Ignore
現在在 TFS 2012 中可以透過 tfIgnore 來達成,簡單來說就是透過一個設定檔來決定那些檔案或目錄是否要 Ignore
建立 .tfIngnore 檔案
方式有兩種,可以用 Command Line 建立,另外一種就是用 Visual Studio 中產生。但我個人是比較建議用 Command line 是比較快的 ![]()
方法一、直接下「Notepad .tfIgnore」就可以建立 ( 註:這個檔案無法用檔案總管產生,因為只有副檔名而已
方法二則是用工具建立
按下 Detected Changes 後,在清單中決定那個檔案不要 Ignore
但我覺得這個方法不太直覺啦!所以就不考慮了。唯一差別的是工具產生的有範例說明。
設定內容和檔案位置
TFIgnore 的規則和設定內容可以直接從 MSDN 中找到
http://msdn.microsoft.com/zh-tw/library/ms245454.aspx
因為我是要針對 Ref 底下所有的 DLL (含子目錄) 都要,所以就必須在 Ref 目錄產生 「.TFIgnore」 檔案。
填入「!\*.dll」( ! 代表不要忽略、 \ 代表要遞回 )
接下來一定要先將該檔案納入版控後才能生效
這個時候再選擇 Ref 的目錄將檔案加入後,就可以發現 Items to add 的清單中已經有包含到 DLL 元件了
參考資料
http://msdn.microsoft.com/en-us/library/ms245454.aspx
http://bartwullems.blogspot.tw/2012/06/tfs-automatically-exclude-from-source.html
http://tfs.visualstudio.com/en-us/learn/build/setup-ci-build-in-eclipse/
http://www.codewrecks.com/blog/index.php/2011/09/29/local-workspaces/