Skip to content
  1. We help small teams achieve big things.
  2. Our Technical Fellow just became a Microsoft MVP!
  3. We run the Azure Weekly newsletter.
  4. We just won 2 awards.
  5. We just published Programming C# 8.0 book.
  6. We run the Power BI Weekly newsletter.
  7. Our NDC London 2020 talk is now available online!
  8. We are school STEM ambassadors.
Howard van Rooijen By Howard van Rooijen Co-Founder
ILMerge Meta-Runner for TeamCity

At the start of every year we do a spot of spring cleaning; we tidy up all of our core intellectual property, harvest any useful code that we've written in the previous year, then give it all a thoroughly good refactoring; to ensure that the code is self-referencing all the new patterns and concepts. This has the general effect of shrinking the size of the codebase, while consolidating and reinforcing the architecture. This is also a great opportunity to re-evaluate our engineering practices and processes in the light of anything we've recently learnt; one of my aims for this year is to eliminate all binary files from our source repositories; NuGet has eradicated referenced assemblies from our solutions, but tools required for the build process have remained.

I've written several articles about TeamCity's excellent Meta-Runner feature; the ability to extend TeamCity without having to know Java (or Kotlin); so it's a natural fit for wrapping up build tools so that they live on the build server, rather than in the code repository. The first of the build tools I've attempted to convert into a Meta-Runner is ILMerge, as we have decided to package up 45 assemblies (useful for separation of concerns and reuse during development, but not ideal when it comes to distributing the final product to the consumer) that constitute Vellum, our Azure based CMS system, into a single assembly, rather than having to deal with 45 NuGet packages which take an age to update.

ILMerge is a wonderful tool, but I use it so infrequently that I always have to start from scratch and read all the documentation (there is a great ILMerge GUI project that adds a UI on top of the command line), so one of the things I wanted to do with the Meta-Runner was to incorporate the help copy to make the Meta-Runner easier to use.

The screenshot below shows the configuration options for the Meta-Runner:

2016-01-24_14-36-31

You can download the plugin from the releases section of the GitHub repo. If you have any problems, please raise an issue. Although we've tested the Meta-Runner for all of our usage scenarios, there might be issues in some of the other configurations options.

If you're interested in looking at endjin's other Open Source projects, we now have a dedicated page on our site.

Work Smarter!

@HowardvRooijen

Howard van Rooijen

Co-Founder

Howard van Rooijen

Howard spent 10 years as a technology consultant helping some of the UK's best known organisations work smarter, before founding endjin in 2010. He's a Microsoft ScaleUp Mentor, and a Microsoft Azure MVP, and helps small teams achieve big things using data, AI and Microsoft Azure.