[Bamboo Knowledge Base]
To configure an MSBuild task:
Complete the following settings:
MSBuild configuration | |
---|---|
Task Description | A description of the task, which is displayed in Bamboo. |
Executable | The MSBuild executable that is available to perform the task. The executable that you select will become one of the task's (and so, the job's) requirements. You can add other executables, if required. |
Project File | The name of the solution, project file or MSBuild project to execute, e.g. ExampleSolution.sln. You can include variables (see Bamboo variables). |
Options | The MSBuild command line options that you want to include. Bamboo tries to tokenise the contents of the Options field and passes those as arguments when it runs MSBuild. You should use a semi-colon to separate options, and quotes around parameters that contain spaces. For example: /p:Configuration="Any CPU";/p:PublishProfile="Dev Server" Note that Bamboo 5.6 parses the contents of the Options field slightly differently from Bamboo 5.5. See below for how to use the MSBuild response file with Bamboo. You can also include variables (see Bamboo variables). |
If required, specify environment variables and working directory settings:
Environment Variables | (Optional) Additional system environment variables that you want to pass to your build. Note that existing environment variables are automatically available to the executable. You can also include Bamboo global or build-specific variables (see Bamboo variables). |
Working Sub Directory | (Optional) An alternative subdirectory, relative to the job's root directory, where Bamboo will run the executable. The root directory contains everything checked out from the job's configured source repository. If you leave this field blank, Bamboo will look for build files in the root directory. This option is useful if your task has a build script in a subdirectory and the executable needs to be run from within that subdirectory. |
Run as Powershell script | (Optional, Windows only) Check the 'Run as Powershell script' checkbox to run the script with Powershell instead of cmd.exe which interprets .bat files. The inline editor supports Powershell syntax. |
Bamboo 5.6 can make use of the MSBuild response file. This allows you to use the same settings with Bamboo as you use when calling MSBuild on the command line.
When this is enabled, the contents of the Projects File and Options fields are written to the response file:
# MSBuild response file generated by Atlassian Bamboo %CONTENTS_OF_OPTIONS_FIELD% %CONTENTS_OF_PROJECTS_FILE_FIELD%
and Bamboo will run the following command:
msbuild.exe @<full-path-to-response-file>response-file.rsp
To enable Bamboo to use the response file, you need to set the bamboo.plugin.dotnet.msbuild.useResponseFile
system property to true
.
There are a couple of ways to do that:
If you start the Bamboo server or remote agents manually you can set the property on the command line, as an argument to the JVM, like this:
-Dbamboo.plugin.dotnet.msbuild.useResponseFile=true
Do this on all Bamboo agents, and on the Bamboo server if you use local agents.
If your agents are run as a service, set the system property in the <Bamboo agent home directory>/conf/wrapper.conf
configuration file, like this:
# The Bamboo Agent home configuration file wrapper.java.additional.1=-Dbamboo.home=/home/bamboo/bamboo-agent-home wrapper.java.additional.2=-Dbamboo.agent.ignoreServerCertName=false wrapper.java.additional.3=-Dbamboo.plugin.dotnet.msbuild.useResponseFile=true
If your Bamboo server runs as a service, set the system property in the <Bamboo home directory>/conf/wrapper.conf
configuration file.