Just starting out with MSBuild

Hello,I am just starting out with my MSBuild project for TFS, and I am having a little trouble wrapping my head around it ...I went into Team Explorer and created a new Build Project, and it built all my projects for me, etc. and everything seemed to work fine (for this scenario).However, our build process requires a lot more than just building - so I decided to investigate how to customize my MSBuild project. I tried starting out with a blank template, but I noticed that the .proj file which was created through the wizard used what is called a "DesktopBuild" as the DefaultTarget. I take it that this includes all of the Clean, Get Latest, Build and Copy-to-output directory functions, and these are all done behind the scenes?Basically what I want to do is 1. Clean up old source code2. Get Latest3. Build project(s)4. Copy files to a set location5. do a bunch of other stuff.I am not sure what the best way to get this is. I would like more control over such things as where the files are copied to, and versioning, etc. The DesktopBuild seems to be the easiest thing to do, but I would rather have the capabilities to do everything myself. Where is the best place to start? Thanks for your help.
[1215 byte] By [Jonny_B] at [2007-12-23]
# 1
I thought that I would also mention that I would like to have control over the reports that are generated along with the build. We will probably have 7 or so build projects, most of which we will be using CI for, but some will be on demand - with one which will package up everything into MSI's. I would like all the reports to be generated at the time which this Team Project is built so our QA department could have a good understanding of what is exactly in this build. Thanks again.
Jonny_B at 2007-8-30 > top of Msdn Tech,Visual Studio Team System,Team Foundation Server - Build Automation...
# 2

The DesktopBuild target is the default when calling MSBuild.exe TfsBuild.proj manually. When you run a Team Build through the GUI / Command Line (or directly through the web services) the default target is EndToEndIteration, which does most of the things you describe (Clean, Get Latest, Build, Copy to drop location).

Most of the targets have Before and After targets which are designed to be overridden when you need to execute custom actions. For example, the Clean target is split into BeforeClean, CoreClean, and AfterClean. When you need to execute custom actions before or after the Clean target, you can override the before and after targets in TfsBuild.proj.

You should be able to find a lot of information on specific topics (versioning, modifying the drop location, etc.) by doing a search through the forums and blogs. The docs on MSDN also have a fair amount of info to get started. I would recomend reading up on MSBuild as well, since Team Build is built on top of MSBuild.

-Aaron

AaronHallberg at 2007-8-30 > top of Msdn Tech,Visual Studio Team System,Team Foundation Server - Build Automation...

Visual Studio Team System

Site Classified