My Rakefile has evolved. I’ve learned a few more things, and as a result I have some things to share:

  • XUnit.NET helper class and custom task
  • NCover helper class
  • NCoverExplorer helper class
  • Package custom task and zip helper class (I couldn’t get the out-of-the-box PackageTask to work as I expected, but since it’s so easy to write one’s own tasks…)
  • Svn helper class (only export and get_revision currently)
  • MSBuild helper class and custom task
  • AssemblyInfo generation custom task
  • Version custom task
  • Harvester helper class
  • Web Application harvest custom task

I’ve put this into an SVN repository(and Trac) for your viewing pleasure, and I will soon also publish a gem called “rake_dotnet” containing the library when I’ve cleaned it up a bit more (this is very much an in-progress learning-as-I-go affair!). I have plans for:

  • Rules-based building (I like it when automation is, well, automatic!), so that for example ‘rake compile’ will continue to work (that is, compile all projects, without needing you to do a Rakefile edit) when new projects are added
  • FxCop helper class and custom task
  • NDepend helper class and custom task (though this will take a little while; never used it before)
  • maybe the CSProj task from Jay Fields (instead of calling msbuild at all, that is)
  • An example Rakefile (one of the hardest things I’ve found with build automation in general is the lack of non-trivial examples…)
  • An example solution that the example Rakefile will build
  • Allowing the users of the tasks to define their own conventions for the rules based on their own codebase’s physical structure

Hopefully, this will save some people some time… My goal is to keep the Rakefile itself as short as possible, leveraging the rule-based task-synthesis that rake is capable of.