2016-05-05 79 views
1

我想創建一個構建腳本,將我們的構建過程從巡航控制遷移到jenkins,並且當我調用MSBuild時我無法看到如何訪問所有常規命令行參數任務。傳遞參數與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等

回答

1

你不行。

/p用於從命令行向構建中注入屬性。像/ v這樣的其他命令行選項是特定於構建過程的,您不能將它們移動到proj文件中。

請注意,您的巡航控制設置可能有很好的理由指定這些/ p參數。我懷疑這是因爲這些參數的值是在巡航控制中定義的,並且是參數化構建的一種方式 - 所以可以啓動構建並說$(MsBuildConfiguration)=「調試」。你可能想要對詹金斯做同樣的事情,而不是強調價值觀。

至於/ p params,Jenkins允許您將參數傳遞給msbuild - 請參閱下面的默認參數。

enter image description here