views:

6153

answers:

8

Hi.

I'm working on a web application project, and I need to create a build script; a build script that I can trigger from my cruisecontrol server. Since nant has not been maintained for ages, I figure that MSBuild is the way to go.

I need the build script to be able to

  • Compile all assemblies
  • Execute unit tests
  • Run NCover analysis on the unit tests
  • Deploy the database (depending on parameters). This is really executing a tool since I will end up writing my own tool to deploy the database. But the execution of the tool should be conditional based on some command line parameter.
  • Deliver unit tests and coverage results in a format that cruisecontrol can read and understand.

I assume that MSBuild will allow me to do all these things. But I don't know where to start. Does anybody know of a good tutorial to get me started with my build script?

+9  A: 

Start here : http://brennan.offwhite.net/blog/2006/11/29/msbuild-basics-1of7/

Preet Sangha
this link is failing as of Feb 16 2010. So to is the blog http://brennan.offwhite.net/blog which comes up in google.
iamdudley
just found one on the google cache http://74.125.155.132/search?q=cache:http://brennan.offwhite.net/blog/2006/11/29/msbuild-basics-1of7/
Preet Sangha
This tutorial is kind of confusing and poorly structured.
David Reis
The link worked for me (Aug-2010)
Christian Payne
+1  A: 

I find this book pretty handy: http://www.amazon.com/Deploying-NET-Applications-Learning-ClickOnce/dp/1590596528/

apathetic
+9  A: 

This was my first tutorial. Very easy to understand and follow:

http://codingcockerel.co.uk/2008/04/15/automating-the-build-with-msbuild/

desigeek
Having no prior experience with MSBuild I found this tutorial to be very easy to understand. The demo code worked in VS2008 without hassle.
iamdudley
+1  A: 

I'm looking for info on this subject myself too.

This is a nice article, Versioning Builds with TFS and MSBuild.

I posted a Stackoverflow answer here to a related question, where I also mention this great episode on DnrTV, Sayed Hashimi on MS Build.

Jakob Gade
+4  A: 

I wasted a lot of time before buying the Hashimi MSBuild book, fantastic -- I concur with this review by Steven St Jean.

In addition to an excellent all-round introduction to MSBuild scripting, it has a cookbook section on doing typical build automation thigns like build numbers etc. Obviously the last TeamBuild section will not be directly relevant for you, but a lot of the topics are generic across all CI tools.

Ruben Bartelink
Follow-up: Both authors have been swallowed by the Borg right now [from which one may or may not wish to infer information pertaining to the quality of the book]
Ruben Bartelink
+3  A: 

I found this MSBuild tutorial by Patrick Smacchia to be very informative (though I read it as a non-beginner)

Also Best Practices for Creating Reusable Builds, Part 1 from MSDN Magazine by Sayed Ibrahim Hashimi and part 2

(And I +1'd the Brennan tutorial)

Ruben Bartelink
+2  A: 

Check this on MSDN How to: Write a Simple MSBuild Project http://msdn.microsoft.com/en-us/library/ms171479.aspx

Baljeetsingh
+3  A: 

There is a "Getting Started with MSBuild" blog post on the the Visual Studio Blog which gives a good overview on how MSBuild is hooked up with Visual studio. It's fairly recent (25.02.2010) and uses Visual Studio 2010 and the accompanying MSBuild v4.0.

There is not much code there though.

It wasn't until reading this blog that I understood that the *.csproj files themselves are MSBuild files. And also, that the Build, Clean, Rebuild and Publish command in the project context menu actually are MSBuild "targets".

Lernkurve