2015-12-11 68 views
1

我們有一個TFS C#保藏中心,項目是這樣的:多項目生成定義從集合級別

OurCollection OurControls OurDBFuntions OurCommonCode PROJECT1 Project2的

大廈PROJECT1或Project2的要求建立的一切「我們的計劃。 TFS不會讓我在OurCollection空間中創建構建定義 - 它要求我在其中一個項目空間中。但是我無法從存儲庫加載所有「我們」的東西,以便Project1或Project2可以編譯,鏈接和完成。 配置有鏈接到所有「我們的」項目,並要求它們在構建Project1或Project2之前構建,但sln和所有其他源文件不從存儲庫下載,路徑僅限於$/Project1的子文件夾。

我能完成我需要做的事嗎?

感謝, 託尼

++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++

我們有幾個項目 - 「我們的。 「。項目,構建爲DLL,鏈接爲引用。每個「我們......」項目有自己的解決方案,需要在Project1構建之前構建。 Configuration Manager將它們標記爲構建,並且我們有構建順序。當我創建一個構建定義時,它讓我指向Project1文件夾中的一個解決方案 - 迄今爲止工作。但它不會從其他項目的源代碼管理中下載。因此,指定的配置無法找到「我們的...」解決方案,然後Project1構建無法找到引用,並且一切都失敗。

我基本上需要將文件夾設置爲集合級別,以便我可以從源代碼管理而不是Project1中獲取所有項目。

我不確定「共享項目」功能是什麼,也沒有在任何有關如何設置構建定義的文檔中找到參考。

感謝, 託尼

++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++

我試圖創建一個新的TFS 2015構建定義。 。 。並且要清楚,這是我的層次

OurCollection

  1. 團隊項目OurControls
  2. 團隊項目OurDBFunctions
  3. 團隊項目OurCommonCode
  4. 團隊項目PROJECT1
    1. ProjectGUI
    2. ProjectRules
    3. ProjectDBAccess
  5. 團隊項目Project2的

我的一個問題是,在構建定義,當我去源設置和嘗試,並添加一個參考答案的路徑,它只會增加一個低於TEAM Project1級別的路徑。我無法返回並在OurCollection中添加一個路徑到不同的團隊項目。它只會允許我在層次結構中添加一個低於Team Project Project1路徑的引用解決方案路徑。

因此,如果我將團隊項目OurControls解決方案移到TEAM Project Project1下,現在我可以添加它。但是TEAM Project Project2不能。

其他幾個帖子似乎表明在集合級別設置生成定義。當我嘗試時,它不會讓我 - 我必須選擇一個TEAM項目。一旦我選擇了一個TEAM項目,我就被困在那棵樹中。

所以也許問題是 - 我如何在集合級別創建構建定義?當我去服務器:8080/TFS/OurCollection,我沒有得到一個生成選項卡。我必須去服務器:8080/TFS/OurCollection/Project1來獲得一個生成選項卡。

感謝您的幫助, 託尼

+0

你正在使用哪種構建?新的vnext構建或舊的xaml構建? –

回答

0

您可以嘗試使用下面的文件夾結構

C#Collection 
    OurCollection (project) 
    OurControls (project) 
    OurDBFuntions (project) 
    OurCommonCode (project) 
    Solution1 (sln including project1) 
    Solution2 (sln including project1) 

的「我們的項目」可以跨多個Visual Studio的解決方案共享。他們不需要添加到解決方案中,您可以使用「共享項目」功能,只需通過添加現有項目添加它們即可。然後,您可以爲solution1創建一個定義,並通過選擇soulution1來構建project1成功。

Soulution1 
    OurCollection (project) 
    OurControls (project) 
    OurDBFuntions (project) 
    OurCommonCode (project) 
    project1