用msbuild任务传参
·
问题:用msbuild任务传参
我正在尝试创建一个构建脚本,将我们的构建过程从 Cruise Control 迁移到 jenkins,当我调用 MSBuild 任务时,我看不到如何访问所有正常的命令行参数。
例如,我想运行相当于
msbuild common.sln /p:Platform="$(MsBuildPlatformAnyCpu)" /p:Configuration=$(MsBuildConfiguration) /v:$(MsBuildVerbosity) /p:WarningLevel=$(MsBuildWarningLevel);OutputPath="$(ProjectBinariesFolder)" /fileLogger /flp1:logfile=$(ProjectBuildLogsFolder)\$(ProjectFile)_BuildErrors.txt;errorsonly /flp2:logfile=$(ProjectBuildLogsFolder)\$(ProjectFile)_BuildWarnings.txt;warningsonly /flp3:LogFile=$(ProjectBuildLogsFolder)\$(ProjectFile)_Build.txt;Verbosity=diagnostic
这是我的 msbuild 文件:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Build">
<PropertyGroup>
<JenkinsBuildFolder>C:\Program Files (x86)\Jenkins\jobs\build2\workspace</JenkinsBuildFolder>
<ProjectSourcesFolder>$(JenkinsBuildFolder)\Sources</ProjectSourcesFolder>
<ProjectBinariesFolder>$(JenkinsBuildFolder)\Binaries</ProjectBinariesFolder>
<ProjectBuildLogsFolder>$(JenkinsBuildFolder)\BuildLogs</ProjectBuildLogsFolder>
<ProjectTestLogsFolder>$(JenkinsBuildFolder)\TestLogs</ProjectTestLogsFolder>
<ProjectGuid>{F8A25B4A-589A-4D3D-A568-4700FD776250}</ProjectGuid>
</PropertyGroup>
<ItemGroup>
<ProjectToBuild Include="Common.sln">
<Properties>OutputPath=$(ProjectBinariesFolder);Configuration=Build</Properties>
</ProjectToBuild>
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(ProjectToBuild)" />
</Target>
</Project>
但是我不知道如何获取命令行开关 /v /filelogger 等的任务等效属性
解答
你不能。
/p 用于从命令行将属性注入到构建中。 /v 等其他命令行选项特定于构建过程,您不能将它们移动到 proj 文件中。
请注意,您的巡航控制设置指定这些 /p 参数可能是有充分理由的。我怀疑这是因为这些参数的值是在 Cruise Control 中定义的,这是一种对构建进行参数化的方法——因此可以启动构建并说 $(MsBuildConfiguration) u003d "Debug"。你可能想对 Jenkins 做同样的事情,而不是硬核价值观。
至于 /p 参数,Jenkins 允许您将参数传递给 msbuild - 请参阅下面的默认参数。
更多推荐
所有评论(0)