如何讓某個特定目錄的 DLL 元件預設出現在簽入清單中–.tfIgnore

如何讓某個特定目錄的 DLL 元件預設出現在簽入清單中–.tfIgnore

前言

版本管控中基本上我們只會存放程式碼以及相關的檔案,這些檔案大多都是 .cs 檔、.prj 檔… 或是 JPEG 之類的圖檔。而 .DLL 檔則是我們的產出基本上我們不需要納入到版本管控中,亦或是特定系統產生的目錄我們也不需要進版控 像是專案中編譯產生的 bin 或 obj 目錄。但專案開始上我們都知道有些 DLL 可能是 3rd Party 引用的檔案我們會需要做統一的納管,在 2012 的版本之前我們只能用人工的方式一個一個把檔案納入。雖然工具也可以特別指定副檔名,但卻會造成所有檔案都有相同的規則這卻不是我們想要的效果。

 

image

我們專案可能會有一個特定的 Reference 的目錄,像我這裡就是用了 Enterprise Library  的DLL 元件,日後就不需要再安裝所有的項目。而這個目錄底下的 DLL 我都希望工具不要幫我自動 Ignore

 

現在在 TFS 2012 中可以透過 tfIgnore 來達成,簡單來說就是透過一個設定檔來決定那些檔案或目錄是否要 Ignore

 

 

建立 .tfIngnore 檔案

方式有兩種,可以用 Command Line 建立,另外一種就是用 Visual Studio 中產生。但我個人是比較建議用 Command line 是比較快的 Smile

 

方法一、直接下「Notepad .tfIgnore」就可以建立 ( 註:這個檔案無法用檔案總管產生,因為只有副檔名而已

 

image

 

方法二則是用工具建立

image

按下 Detected Changes 後,在清單中決定那個檔案不要 Ignore

image

但我覺得這個方法不太直覺啦!所以就不考慮了。唯一差別的是工具產生的有範例說明。

 

設定內容和檔案位置

 

TFIgnore 的規則和設定內容可以直接從 MSDN 中找到

http://msdn.microsoft.com/zh-tw/library/ms245454.aspx

 

image

因為我是要針對 Ref 底下所有的 DLL (含子目錄) 都要,所以就必須在 Ref 目錄產生 「.TFIgnore」 檔案。

 

image

填入「!\*.dll」( ! 代表不要忽略、 \ 代表要遞回 )

 

接下來一定要先將該檔案納入版控後才能生效

image

 

這個時候再選擇 Ref 的目錄將檔案加入後,就可以發現 Items to add 的清單中已經有包含到 DLL 元件了 Smile 

image

 

 

參考資料

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/