2013-10-17 35 views
3

我目前正在使用Teamcity 7.x,但我們還沒有準備好升級。在TeamCity「NuGet Pack」跑步者類型中,如何避免使用BasePath選項?

對於我們的內部NuGet包,我的規範是相對於nuspec文件的位置(默認情況下),但是當在NuGet包運行器中運行時,它們必須與構建檢出目錄相關。

舉例來說,我應該有包含這一個nuspec:

<files> 
    <file src="Content\**" target="content" /> 
</files> 

但不會在TeamCity的工作,因爲它會自動添加一個基本路徑的選擇,所以我不得不把nuspec改成這樣:

<files> 
    <file src="Source\Project\Content\**" target="content" /> 
</files> 

這怎麼可以避免?我可以更改我的規範,但是我在一個構建步驟中創建了許多包,而且我試圖使用新的-IncludeReferencedProjects選項,但由於它看起來位置不正確而失敗。

BasePath選項是不需要的,那麼爲什麼它默認爲構建檢出目錄?

回答

3

每下列文件,步驟2,彈頭3: http://confluence.jetbrains.com/display/TCD7/NuGet+Pack

  • 指定基目錄,其中在nuspec文件中定義的文件是 位於(目錄針對其在從 路徑nuspec已解決,通常是一些bin目錄)。如果留空, TeamCity將使用build checkout目錄作爲基礎目錄。

您可以嘗試調整此設置你的項目的根(理論上同一位置的nuspec文件),而不是構建檢出目錄(默認)。

+1

這不是我的問題。我的問題是它應該總是使用nuspec文件的位置,如果沒有指定-BasePath選項,這是默認行爲。它始終在NuGet打包程序中指定的事實是問題所在。理論上我可以通過爲每個軟件包添加一個NuGet pack構建步驟來解決這個問題,但是看到我們的解決方案超過了20個軟件包,這實際上是不可維護的。 –