RAD 2007: overriding project settings with MSBuild

Posted on: Thu, 06/12/2008 - 17:30 By: ldsandon

While building a project outside the IDE you could need to change some project settings, for example the output folder. It can be accomplished using the /p switch, the same used to set which configuration to build. If you open the .dprj file, you will see several <DCC_xxxxxx> nodes under each <PropertyGroup> node. These values can be overriden from the command line, each property separated by a semicolon. Here an example from an actual build configuration I use in CruiseControl.Net, to set the exe and dcu output folders:

 

<msbuild> 
  <buildArgs>/noconsolelogger /p:Configuration=Debug;
    DCC_ExeOutput=C:\Builds\vega_head\WorkingDirectory\windows\bin\debug;
    DCC_DcuOutput=C:\Builds\vega_head\WorkingDirectory\windows\obj\debug /v:minimal
  </buildArgs>
  <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
  <logger>C:\Programmi\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
  <projectFile>Administration.groupproj</projectFile>
  <targets>Make</targets>
  <timeout>3000</timeout>
  <workingDirectory>windows</workingDirectory>
</msbuild>

 

I'd wish to change in the same way the "Autoincrement build number" parameter in the same way (or set the build number each time from the continuos integration server data), but it looks they are stored in a different way.