簡體   English   中英

有關TeamCity的幾個問題

[英]A couple of questions regarding TeamCity

我已經為大型項目安裝了CI服務器一段時間,但沒有時間,我上面的人也對此不太關心,他們只是說:“這很有趣,它可以為我們節省很多時間。一段時間”,但從來沒有為此做任何事情...

我曾經在CC.NET上有過一些經驗,但是只是在小型項目中,並且為了學習它的基礎知識。 最近有更多的業余時間,因此決定嘗試TeamCity,並將其設置為大型項目。

但是,在處理參考文獻時,我會遇到兩個問題:

1)在處理多個項目時,我盡量不要制作包含所有項目的大型解決方案(並非總是可行),因為我也使用SVN,因此我使用指向其他項目中已編譯程序集的相對路徑(例如:.... \\ Library A \\ trunk \\ Library \\ bin \\ release \\ LibraryA.dll)。 對於我和參與該項目的同事來說,它一直很有效,但是我很難讓TC項目來接,我應該如何設置我的依存關系?

2)其中一個庫是由另一家公司制造的,並且SVN庫與它們共享。 他們最近不得不添加對Oracle DB的訪問權限,並且他們與Oracle數據提供程序一起使用,后者似乎與在GAC中注冊的程序集一起使用,但是在構建解決方案時,它輸出另一個相似的程序集,但具有不同的程序集版本(如果我錯了,請糾正我,我一直在使用內置的Oracle提供程序,因為它已經足夠了。 在我公司方面,我們使用該“輸出程序集”,並且該項目可以編譯並正常工作,但是以前我們不得不更改引用,並且無法在存儲庫中修改項目文件,是否有任何解決方法為了這?

謝謝你的回復。

對於1),當您的項目由TC構建時,您可以使用Svn 外部組件從其他項目中獲取程序集和其他依賴項。

您還可以設置TC,以檢測外部環境何時發生了更改,並使用最新版本構建項目,或者可以將TC項目鏈接在一起,以便它們按順序構建。

我花了很多時間在我們的位置上啟動並運行CI服務器,並且確實取得了回報。 仍然需要一些時間來解決問題,但會嚴重建議您啟動並運行。

抱歉不能幫您2)。

對於1),您可以為項目設置ReferencePath並指向帶有已編譯程序集的目錄。

在我們的TC配置中,我們將所有TeamCity依賴項加載到一個名為“ Dependencies”的子目錄中,並將編譯器的ReferencePath設置為此目錄。

使用MSBuild Runner,這非常容易:

在Build的den .proj中,您需要定義一個Property(我們稱為ReferencePath

<PropertyGroup>
    <ReferencePath>$(MSBuildProjectDirectory)\Dependencies\</ReferencePath>
</PropertyGroup>

然后使用它調用MSBuild任務:

<MSBuild Projects="$(ProjectFiles)" Properties="Configuration=Release;ReferencePath=$(ReferencePath)" Targets="Rebuild" />

@(ProjectFiles)是一個簡單的ItemGroup,它收集所有.csproj -Files。

<ItemGroup>
    <ProjectFiles Include="$(MSBuildProjectDirectory)\**\*.csproj" />
</ItemGroup>

通過修改參考屬性並將其設置為不查找特定版本來解決#2。 另一家公司似乎已經接受了它。

仍然沒有時間檢查#1的VCS Checkout規則。

感謝所有答復,了解了一些新知識。

昨天可以與TC合作,了解更多有關VCS結帳規則的知識,並發現可以通過工件輕松解決#1(起初我並沒有意識到這個名字是什么意思),所以我正在使用到目前為止,我的項目都沒有問題。

您如何看待這種方法? 這些庫給我帶來了同一項目的“核心”庫所在的問題,因此我已經為它們設置了一個項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM