What build or deployment tools are available for a 1 person development effort, in the .NET space, that are capable of producing project outputs?

I'm not looking necessarily looking for a CI server (though I can't think of anything else that does what I'm looking for) but I am looking for it to:

  • produce and publish documentation from xml comments
  • produce and publish the project (web and/or clickonce app)
  • handle basic versioning (automatic build number incrementing)
  • work from a sln file
  • be easy to setup (< 8-16 hrs for someone who knows little to nothing about the tool(s))
  • do this at the push of a button (after configuration obviously)

Things I don't need:

  • source control integration : I can point it to a sln if need be. Not a huge deal.
  • unit testing : I run test suite before commits
  • static analysis : again, I also run these before commits

I know that msbuild is capable of most or all of this, and I do have my msbuild book(s) with me, but I'm still very new to it and I don't have the time at the moment to learn it well enough to do what I want.

closed as off-topic by gnat, GlenH7, user40980, mattnz, Bart van Ingen Schenau May 28 '14 at 7:23




TeamCity is a CI server that does what you need (and a few other things too). Automatic assembly versioning requires some tricks (I can go into more details here if needed), but it will version build artifacts that it produces.

Setting it up is very easy and there is a free version that supports up to 20 build configurations, which should be sufficient for a single developer.

Edit: come to think of it, I'm not sure about setting up XML doc generation with TeamCity. But if it's something that can run as part of an MSBuild project, TeamCity will run it, I'm pretty sure.

  • Why the downvote? – Adam Lear Nov 3 '10 at 17:28
  • No idea. I have used TeamCity before (and liked it). I don't recall it being able to generate documentation, but if it can then it might be what I'm looking for. – Steven Evers Nov 3 '10 at 20:24
  • @SnOrfus: Apparently it can, with a bit of legwork. Here's a blog post I found on Sandcastle and TeamCity integration: navision-blog.de/2009/01/11/… – Adam Lear Nov 3 '10 at 20:47
  • 1
    TeamCity can run anything you need on the command-line with the CommandLine build runner. You can now chain together many different build runners, making TeamCity my choice for personal projects. – Jeff Fritz Mar 2 '11 at 0:01

If you're looking for something simple, you might consider hudson. I haven't used it with .Net, but it's pretty useful if you just want to have a series of build jobs that only need to run a set of shell commands. It can be a bit simplistic if you get to the point where you have multiple packages with complex dependencies, but it sounds like it might be useful for the size of project you're doing.

EDIT: It turns out that there's an MSBuild plugin as well

  • +1 I've used Hudson on a lot of projects. Great tool with lots of plugin support...like this one: wiki.hudson-ci.org/display/HUDSON/ChuckNorris+Plugin – Ryan Hayes Nov 3 '10 at 16:54
  • Hudson is awesome, much easier to configure and manage than others, its all web-based GUI which writes to xml files you can copy and paste. And it works, plus it has a great 'upgrade to next version but keep a one-click downgrade' feature. – gbjbaanb Feb 4 '12 at 1:03

I don't have a comprehensive answer to all of your points, but I can point you to a software that I found extremely useful. It's called CruiseControl.Net

Google it and check it out :D

  • 1
    I thought cc.net had it's day and was abandoned? I took a look at it two years ago, and iirc, it was a pain to setup (the config files were terrible) and hadn't been maintained for a while even at that time. – Steven Evers Nov 3 '10 at 15:46
  • 2
    No, CC.NET is still going strong - last release was 1.5 in May. I think it did go quiet for a while but it's picked up again. – JohnL Nov 3 '10 at 15:59
  • @JohnL @Matteo Mosca: I'll definitely take another look at it again then. – Steven Evers Nov 3 '10 at 16:24
  • It deserves your attention, really. It's a time saver, and a life saver in certain cases. I know that configuring all the xml by hand may seem a bit of a pain, but the docs are extremely well written and once you get the hang of it, it really really pays off. – Matteo Mosca Nov 3 '10 at 16:30

A 1-dev project could do all this within Visual Studio, since it has builtin tools to do all of this. If you want script it though, then the tools you want to look at are:

  • produce and publish documentation from xml comments produce and publish

Sandcastle: http://broadcast.oreilly.com/2010/09/build-html-documentation-for-y.html, http://sandcastle.codeplex.com/

  • the project (web and/or clickonce app)

http://codingcockerel.co.uk/2008/05/18/how-to-publish-a-web-site-with-msbuild/, or calling the Publish target on the solution

  • handle basic versioning (automatic build number incrementing)

AssemblyInfo task from http://msbuildtasks.tigris.org. This won't automatically increment the version because that would mean tracking the version number each time. You can have something like CruiseControl.NET pass one in, or you can generate one based on the date and time using the Time task (as an example).

  • work from a sln file

MSBuild will use a .sln as a project file. If you want to wrap your .sln with another MSBuild script, you can use the MSBuild task

  • +1: This is basically what I do now. I'd like something that ties it all together though. If it means that I must write an msbuild script to make it happen, then I guess that's what I'll have to do. – Steven Evers Nov 3 '10 at 15:51
  • There are other build scripting systems that work with .NET, for example NAnt, which rocks but was last updated in the stone age. Or just a batch file will do. It depends why you want to move out of the IDE, or is it just that you're tired of clicking Build then Publish? BTW, I edited my answer because the formatting went nuts – JohnL Nov 3 '10 at 16:01

Check out Sandcastle and Sandcastle Help File Builder for compiling your XML docs. It works pretty well, but the documentation isn't so hot.



  • That's what I use now. I assume/hope that if I go with a CI tool that doesn't already perform this function that I can run sandcastle from it as part of the build/deployment process. – Steven Evers Nov 3 '10 at 15:47
  • SandcastleBuilderConsole.exe MyProjectHelp.shfb should build the doc if you have the SHFB GUI; any batch or build script can call it. – Michael K Nov 3 '10 at 15:59

While waiting for answers, I got looking around and stumbled upon MSBuild Explorer and think that, in combination with the MSBuild Extension Pack, the 'favorites' feature might be what I'm looking for.

I'm not going to mark this as the answer yet, because I have to try it out to see if it can do what I'm looking for. Feedback is appreciated if anyone else has used this before.
