To configure an MSBuild task:
- Navigate to the Tasks configuration tab for the job (this will be the default job if creating a new plan).
- Click the name of the desired MSBuild task, or click Add Task and then MSBuild if creating a new 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 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, for example
ExampleSolution.sln. You can include variables (see Bamboo variables).
The MSBuild command line options that you want to include.
By default, Bamboo 5.7 (and later versions) writes the contents of the Projects File and Options fields to an MSBuild response file. See below for more information.
You can include variables (see Bamboo variables).
If required, specify environment variables and working directory settings:
(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).
Multiple variables should be separated with spaces. Parameters with spaces must be quoted (e.g ANT_OPTS="-Xms200m -Xmx700m").
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.
- Click Save.
Passing options to MSBuild
By default, Bamboo 5.7 (and later versions) writes the contents of the Projects File and Options fields to an MSBuild response file:
# MSBuild response file generated by Atlassian Bamboo %CONTENTS_OF_OPTIONS_FIELD% %CONTENTS_OF_PROJECTS_FILE_FIELD%
and then runs the following command:
This allows you to use the same settings with the Bamboo MSBuild task as you would use when calling MSBuild on the command line.
You can disable creation of the response file. In that case, Bamboo will create a .bat file instead:
"<full-path-to-msbuild>msbuild.exe" %CONTENTS_OF_OPTIONS_FIELD% %CONTENTS_OF_PROJECTS_FILE_FIELD%
and run that.
To disable use of the MSBuild response file, set the
bamboo.plugin.dotnet.msbuild.useResponseFile system property to false.
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:
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.confconfiguration 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, add the system property to the
<Bamboo home directory>/conf/wrapper.confconfiguration file.