I’ve finally managed to completely rewrite our build script using CruiseControl.NET and MSBuild (previously we used FinalBuilder 5, but decided to leave it because of various reasons). The work itself was really interesting as far as I’ve never used MSBuild before. Well, ok, we did use it always when building .Net part of our application, but that was really behind the scenes and we have never changed anything manually in .vcproj files.

At first I was really optimistic about writing all the stuff for our build solely on CCNet, but it appeared impossible because of its poor handling of user-defined variables and lack of flexibility for custom operations. That was the point where MSBuild helped a lot (take a look at Simple MSBuild Project tutorial to see what it looks like). I will describe several situations where I had to find own solution below.

Continue Reading »