我有一个TeamCity构建,它使用msbuildbootstrap来运行msbuild。我想在我的本地机器上运行相同的msbuild命令,但我不知道TeamCity传递了什么参数。日志不说。
[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的文档?
答案 0 :(得分:1)
这是一个棘手的问题,因为TeamCity不仅会发送一个属性列表作为MsBuild命令的输入。它创建了一个环境变量列表,MsBuild本身将其作为属性考虑在内。 您可以在TeamCity中的构建配置的"参数"部分中找到已定义的环境参数。它们被引用为"系统属性(系统。)"。
执行构建后,您可以在名为"参数"的构建结果选项卡中再次找到系统属性列表。在"系统属性"。
作为构建管理员,我不喜欢这种情况,因为在本地计算机上重现构建可能非常困难。我们今天使用太多系统属性,仅在TeamCity中指定。我想将我们转移到一个清晰的API来执行我们的构建。