2016-02-02 84 views
2

我有一個TeamCity構建,它使用msbuildbootstrap來運行msbuild。我想在本地機器上運行相同的msbuild命令,但我不知道TeamCity傳遞它的參數。日誌不說。從TeamCity複製msbuild命令

[Step 1/3] Starting: D:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.MsBuildBootstrap.exe /workdir:D:\BuildAgent\work\e8f57dfa2eca8e8c /msbuildPath:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
[14:10:12][Step 1/3] in directory: D:\BuildAgent\work\e8f57dfa2eca8e8c 
[14:10:14][Step 1/3] depot\Build\Scripts\release.build.teamcity: Build target: PublishRelease (1m:10s) 
[14:10:14][depot\Build\Scripts\release.build.teamcity] PublishRelease (1m:10s) 
[14:10:14][PublishRelease] CreateCustomBuildLabelTask (1s) 
[14:10:15][CreateCustomBuildLabelTask] Creating custom build label from TeamCity build number 7375. 
[14:10:15][CreateCustomBuildLabelTask] Generated build label is  2016.02.01.ReleaseCandidate 
[14:10:15][PublishRelease] CopyBuildArtifactsTask (5s) 

我該如何精確複製TeamCity傳遞給msbuild的參數?有沒有關於msbuildbootstrap的任何文檔?

回答

1

這是一個棘手的問題,因爲TeamCity不僅僅發送一個屬性列表作爲MsBuild命令的輸入。它創建一個由MsBuild自身作爲屬性考慮的環境變量列表。 您可以在TeamCity的構建配置的「參數」部分中找到已定義的環境參數。它們被引用爲「系統屬性(系統)」。

構建完成後,您可以在「系統屬性」下的名爲「參數」的構建結果選項卡中再次找到系統屬性列表。

作爲一個生成管理器,我不喜歡這種情況,因爲在本地機器上重建生成可能非常困難。我們今天使用的系統屬性太多,只能在TeamCity中指定。我想把我們轉移到一個清晰的API來執行我們的構建。