MSBuild is whacked. Just doing a simple dependency requires you to
setup all kinds of crazy tags and MS weirdness. I avoid it like the
plague.
I built a fairly sophisticated (well IMHO anyway) set of nant scripts
for our projects and I'm just refactoring it today (moving all the
common stuff out into a base build script, renaming targets and
properties so they sound better, etc.).
There's a few approaches to building using nant vs msbuild. You can
run csc targets and just compile the code into whatever assembly you
want. This is my preference as it gets rid of having to deal with how
you structure the projects in the IDE/solution, however sometimes it
requires you to expose an assembly to the tests (via the VisibleTo
attribute) and do some NAnt magic changing that value to an assembly
name that only exists in the solution during a ccnet compile. The
other option is to feed msbuild.exe a .sln file. This is pretty easy
but it requires the solution to be setup with the right dependencies,
assemblies will get dumped in the typical bin\Debug or bin\Release
folders (unless you have them point to a single location, which is
what I sometimes do). There's a new(er) msbuild task that will work
with 2005 but it requires an msubild file (all .sln and .csproj files
are anyways) and you can just run msbuild.exe just as easily.
We're dropping NCover on Tree Surgeon (only for 2008 projects) because
it's gone commercial. They do offer free licenses for open source
projects so you could get one but I'm not sure if that's appropriate.
Since xeva is a framework you expect others to use (rather than a
tool) consumers would need to have a copy of the dependencies and the
NCover license won't transfer like that. That's why I'm ditching it
for Tree Surgeon because I don't want to make it generate a solution
that requires the consumer to purchase some product. It would be no
different than to include a copy of say DevExpress in the solution
tree for the Windows UI. Your call on whether or not you want to
include the newest version in xeva. I'm sure you could get a copy.
Having said that, it's built on 2005 so you could use the latest
version of NCover (1.5.8) along with NCover.Explorer. That's what I
have setup on our projects. We run the xunit console through
NCover.Explorer after running NCover to generate the coverage stats. I
can take a look at updating the xeva build script to make it a little
more elegant and flexible tonight and submit a patch.
Bil The NAnt Master Simser