2011-11-18 49 views
3

我有一個爲Java和.NET項目配置的CI構建服務器,並試圖將新項目集成到服務器。不幸的是,這個項目將TFS(2008)用於SCM。在此之前,我知道TFS提供了構建功能,但我們試圖對構建基礎結構進行標準化,並且第一步是通過相同的Web服務構建所有項目(本例中爲Jenkins)。是否有任何方法只安裝tfs命令行?

我需要將TFS安裝到構建服務器,因此我下載了TeamExplorer客戶端,一個ISO大小僅爲400Mb的客戶端。當我嘗試從ISO安裝時,它不提供可選的安裝組件,並提供了大量將安裝的組件(絕大多數將永遠不會在此服務器上使用,AFAIK)。

  • 微軟的Visual Studio 2008殼(集成模式)
  • Microsoft Visual Studio工具爲Microsoft Office系統(3.0版運行時)
  • 微軟的Visual Studio 2005和工具爲2007 Microsoft Office系統運行
  • 微軟文檔資源管理器2008
  • Microsoft Visual Studio 2008團隊資源管理器
  • Microsoft Office System 2003主互操作程序集

安裝完整的Visual Studio用戶界面和所有助理的東西似乎非常矯枉過正,因爲我只會調用CLI TFS客戶端。這對於CLI實用程序來說都是必需的嗎?

是否有可能只獲得命令行TFS所需的程序集?或者是否可以僅從ISO安裝CLI?

我知道有一個類似的問題here,在ijprest的答案中有一個工作命令行TFS的最小文件拷貝列表,但我不想安裝黑客。我希望支持的安裝不會在將來引起混淆。

[編輯]

基於一對夫婦來到答案,我會解釋環境和推理。

構建服務器本身是Windows 2008服務器,但無法通過TFS構建,因爲我們正在嘗試創建一個可處理多個項目的統一CI系統。

一些項目是.NET,一些Java。一些在Subversion上託管(SCM),一些在ClearCase上。這個新項目託管在TFS上(到目前爲止,只有6個項目中有1個項目),所以TFS在這裏是少數。

在政治上,我們不能強制項目使用一套工具。然而,我們希望擁有一個構建點將輕鬆地將項目推向一個更加統一的方法(或者至少將項目領導層推動到之間互相「交談」,然後購買新的工具/框架/等。因此,構建服務器需要能夠從SCM中將源代碼拖放到「構建」區域,然後執行構建(通過Ant,Maven,NAnt,MSBuild,Grdle等),但重要的是:

  1. 構建將被斷開時源的變化(基於輪詢的SCM)
  2. 構建系統將拉動從SCM源與沒有人的交互自動依據。
  3. 構建將通過約定發生,或者(至少)通過基於SCM的腳本(build.xml,makefiles等)發生。重要的是再次沒有人際互動。
+0

你可能想要消除那個咆哮 - 它會讓你更加離開真相。安裝Team Explorer(GUI客戶端)以何種方式阻止構建一致?構建定義已經打包並且團隊資源管理器僅排隊構建。在CI構建的情況下,不需要GUI,因爲只要檢入代碼,它就會啓動。我想您可能會對「GUI組件」實際組成的內容感到困惑。 –

+0

擺脫它,但咆哮不是關於TFS,我在評論中說。 – GKelly

+0

仍然不明白爲什麼你認爲你正在安裝「完整的Visual Studio UI」。 –

回答

4

從技術上來說,是的,這是唯一的Microsoft支持的方式來安裝tf.exe命令行客戶端。

命令行客戶端只與UI組件捆綁在一起的一個重要原因是因爲命令行客戶端確實會引發UI(除非您使用/noprompt標誌)。這樣可以基本上構建一些簡單的腳本實際上非常強大,並且有能力提供交互式工作區管理,衝突解決等等。顯然,在構建環境中,您不會從中受益,但這就是爲什麼它被捆綁的原因 - 命令行客戶端確實依賴於UI DLL。

如果您想要在非Windows體系結構上構建Jenkins,則可以使用Team Explorer Everywhere命令行客戶機,它是Java中的tf的跨平臺實現。它具有大部分與tf.exe相同的功能,並且在大多數情況下與參數兼容,旨在爲構建提供可編寫腳本的跨平臺解決方案。 Jenkins TFS插件確實支持Team Explorer Everywhere tf命令行客戶端。但是,如果您要在Windows上使用TEE版本的tf命令行客戶端,我們不會爲此安裝提供支持。

微軟也不會支持你提到的只需複製必要的程序集的答案。

+2

+1解釋_why_ TFS需要這麼大的安裝。我編輯了我的原始文章以提供構建環境。團隊資源管理器到處都可以作爲您知道的任何地方下載? – GKelly

+1

如果有人感興趣,請在http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=4240上找到TEE。我會試試看,然後回來。你能告訴我,如果這是單獨授權給TFS嗎? – GKelly

+1

嘗試下載TEE,它工作。與我們定義的構建過程很好地集成。謝謝。 – GKelly

1

您發佈的組件列表不包含「完整」VS UI。 Visual Studio被組織爲一個shell加插件。在這種情況下,它將安裝shell和一個插件(團隊資源管理器)。

你最終得到的結果是沒有能力去創建應用程序,或者除了充當TFS的GUI客戶端之外不做任何事情。它不會自動給人們建立的能力 - 這是通過你在TFS中賦予他們的權限給予他們的。如果沒有人能夠創建構建定義或運行構建定義,那麼將沒有構建。

您也可以根本不安裝構建服務。

+0

我不想通過TFS執行構建。我希望TFS所需的是從TFS存儲庫中提取源代碼。沒有其他的。可能還會爲重要版本生成標籤。構建本身將通過(基本上)命令行工具發生。 Jenkins將通過NAnt或MSBuild啓動構建。 – GKelly

+0

這就是爲什麼我說不安裝構建服務。 –

相關問題