2016-05-05 2 views
1

Я пытаюсь создать скрипт сборки, чтобы перенести наш процесс сборки из Cruise Control в 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. Я подозреваю, что это потому, что значения для этих параметров определены в Cruise Control, и это способ параметризовать сборку, поэтому можно было бы запустить сборку и сказать $ (MsBuildConfiguration) = «Debug». Возможно, вы захотите сделать то же самое с Дженкинсом, а не с хардкорными значениями.

Что касается параметров/p, Jenkins позволяет передавать параметры в msbuild - см. Параметры по умолчанию ниже.

enter image description here

Смежные вопросы