I have never really been to actively involved with the build part of setting up continuous deployment environment, as such I have not had too much exposure to MsBuild.exe, ok I have done a bit with Nant.exe before, but MsBuild is still pretty novel to me.
Anyway I decided I needed a small demo concept to see if I could get something up and running, and what I decided to have a go at was the following
- Build entire solution
- Run the unit tests
The 1st issue I had was that solution files are not in MsBuild format. Mmmm
how strange. Thing is this doesn’t really matter, there is nothing to stop you
creating a custom MsBuild file, which just has to be a valid msbuild file.
Here is what my solution structure looked like
Like I say all I wanted to do was build the solution and run the tests.
So without further ado lets see what my msbuild file ended up looking like
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Run">
<UsingTask AssemblyFile="$(MSBuildStartupDirectory)\Lib\MsBuildCommunityTasks\MSBuild.Community.Tasks.dll" TaskName="NUnit"/>
<CallTarget Targets="BuildSolution" />
<CallTarget Targets="RunTests" />
<Message Text="BuildSolution called." />
<Output TaskParameter="Include" ItemName="TestAssembly" />
ToolPath="C:\Program Files (x86)\NUnit 2.6.2\bin"
I did actually get this from someones blog, but I seem to have lost the link,
so if you think you know which one it was let me know, and I’ll put a link to it
I don’t think that is too bad, and that hard to understand, we simply do
- Setup some solution properties
- Use the MsBuild msbuild task to build the solution
- Use the MsBuild Community Tasks to run Nunit (making sure we point to
the version we want to use)
- The built files and test results will be in a folder names OutDir after
we run this custom msbuild file
In order to run this custom msbuild file we simply use the following command
MsBuild Community Tasks
The MsBuild Community Tasks are awesome and they have many many useful MsBuild
tasks in them, I would encourage all of you to check them out at :
As always here is a small demo project :