BuildManager

.NET Solution build and deployment tool

Overview

When I started at LCS, deploying the web products was very manual. A developer would actually make the builds, then copy-paste from their local bin folders to the staging environment where config files would be edited by hand. Anyone who understands what that means is cringing so hard right now, haha.

The first thing I did was set up One Click Publish and config transforms. That kept us going for a while, but as we kept adding web products the process kept taking longer and longer. Some poor dev (me) still had to do the "One Click" for 8 or 10 different products.

I built BuildManager to handle all that with one click, using Perforce and MSBuild's command line utilities.

Current Status

Retired - We now have a Release Team, and use TeamCity for our builds

Core Problems

  • Building 8-10 web apps took forever
  • Copy/Pasting by hand is very prone to error

Lessons Learned

  • The MSBuild command line is very powerful, but it can be hard to diagnose build issues if you have a lot of custom tasks, though.
  • Perforce's command line utility is a little hard to use so I ended up writing a wrapper library for it. Fortunately, the wrapper came in handy for some other projects.

Current Objectives

  • None

Tools

  • C#
  • WPF
  • MSBuild
  • Perforce's CLI (p4Bridge)
  • Dapper