2016-02-02 83 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来执行我们的构建。