2009-10-12 30 views
4

我一直在設置TeamCity,並且幾乎所有的工作都能夠編譯引用瞭解決方案路徑之外的程序集的VS2005解決方案。我有我們的SVN存儲庫結構如下TeamCity路徑到外部引用程序集

 
    Root 
     Libraries 
     Project 1 
      Trunk 
     Project 2 
      Trunk 

項目1和項目2引用位於庫中的第三方程序集。這個工作從VS2005 IDE內就好了自HintPath所有引用的解決方案文件調用的MSBuild當這個樣子:

..\..\..\Libraries\ThirdParty.dll 

我所遇到的問題是,當TeamCity的死亡從SVN結帳對於項目1或項目2,它將所有內容放入與HintPath給定的相對路徑結構不匹配的內部目錄中。

如何通過TeamCity配置或配置我的解決方案/目錄結構來清除此問題?任何一個都可以滿足我的需求。

謝謝!

回答

0

我們用我們所有的第三方dll建立了一個網絡目錄。然後我們將目錄映射到一個驅動器。

這樣,dll不是我們解決方案的一部分,所有項目都只需調用z:\ 3rdParty \ example.dll來獲取程序集。

有人在我的球隊還有實際設置我們的TeamCity的,所以我可能是完全錯誤的有關問題實際是如何固定的,或者我們甚至有這個問題初始:)

+0

謝謝戈登。但是,我想將所有內容都保存在存儲庫樹中,所以我認爲您的方法對我們來說不太合適。 – 2009-10-14 15:50:14

4

如果創建一個單獨的VCS根庫,您可以使用checkout rules來控制文件放置在目錄結構中的位置,以便它與本地計算機上的結構匹配。

0

我所做的是將項目的VCS ROOT設置爲頂層目錄(根據您的項目結構設置「Root」)。並分離由teamcity創建的默認項目vcs root。之後,您可以在構建類型「Visual Studio(sln)」中通過在此處指定解決方案來創建自定義構建步驟「解決方案文件路徑:*」。現在它正確處理庫引用。

這裏有一個缺點,即由於vcs根目錄位於頂層,甚至不相關的檢查插件可能導致您的項目生成並且可能不適合耗時的生成。目前還沒有解決方法。

相關問題