.NET build automation software recommendations?
November 13, 2006 8:10 AM   Subscribe

.NET build automation software experiences/recommendations?

I'm coming up against the wall of VS 2005's limited "Web Deployment Project" capabilities. I like the unattended building and web.config replacement, but have several issues:

- Building over a VPN is slow as molasses. I have a single codebase that is replicated to multiple sites with merged site-specific configs. If I need to build two sites, it's 2X as slow. Clearly, this won't scale well. If I have 5 sites, I'd like to build once, copy 5x, and merge 5x.

- VS replaces the entire site rather than simply what's changed. As the scope of the app grows, again- scalability.

- VS won't update SQL schemas.

- To minimize production downtime, I'd like to have the site built first, then assigned as the relevant path in IIS, rather than building directly to the production path. Currently, if my build dies (which can happen if my connection isn't perfect), the site is down while I do another build from scratch.

- VS won't do scheduled builds.

- There are times when I'd like to push out a build using multiple VSS branches, some of which don't require compilation. Basically, I have static assets like images in VSS but not in my VS.NET project because the consume a ton of build time and change very infrequently.

I realize I could script some of these together, but I'm not interested in duct tape. Does anyone have experience with Visual Build Pro they'd like to comment on, or another tool? I'd like to cut out the VS.NET IDE from the process as much as possible.
posted by mkultra to Computers & Internet (4 answers total) 1 user marked this as a favorite
 
Can NAnt do the trick with some custom tasks? or maybe something else from open-source world like an ironpython port of SCONS?
posted by sandking at 7:14 PM on November 13, 2006


I would think that something like NAnt could do what you need it to do. You just need to get into the mindset that you can you need to script out your build/test/configure/deployment in a seperate toolset than what you do from your normal day to day development in an IDE.

I personally like to have both environments setup so that I know I'm not dependant on the IDE to do my work but I can use the IDE where it makes sense for the productivity gains.
posted by mmascolino at 9:37 PM on November 13, 2006


nant will get you most of the way there.

Check the task list to get a feel for what it can do.

The schema stuff is more difficult, I've created some custom nant tasks to deal with this stuff. Custom tasks are not hard to create.
posted by killThisKid at 9:22 AM on November 14, 2006


CruiseControl.net. I swear by it.

I don't know if it will solve your VPN issues, but it is super-flexible, and relatively easy to understand. Everything is configured via a Nant-style XML config. You can delegate the actual compile tasks to nant or msbuild, or you can make it do custom tasks (anything that you can do from the command line basically).

It has pugins for all the popular source control packages, and can be configured to only do builds if/when there are code changes checked in.

I can imagine it would not be overly difficult to make it do stuff like pulling all changed code into a directory (perhaps locally to avoid the VPN), compiling it, then shipping it to a built location. We do exactly this (minus the VPN) with our .NET websites at the moment.
posted by pivotal at 1:40 PM on November 14, 2006


« Older Should I get dental/vision insurance? If so...   |   How do I put this on my resume? Newer »
This thread is closed to new comments.