Jamie Hale
Jamie Hale

Reputation: 1539

How do I use a tool like NAnt for large-scale builds but still allow developers to use the VS IDE?

We have a large codebase in VS 2008. We have developers that need to rely on the VS IDE for day-to-day development. But we also have complicated dependencies and deployment steps and require an automated nightly build.

I am familiar with NAnt. It is perfect for our out-of-IDE build and deployment steps. Unfortunately, I haven't seen a nice way to integrate its build steps into the IDE. For instance, developers will want to be able to CTRL-SHIFT-B to build. I've seen steps to add NAnt as an external build tool but that doesn't allow the developer to double-click errors to jump to the source.

Is MSBuild good enough these days? Is there anything else? I can't believe we're the first to deal with complicated builds and picky developers.

EDIT: I see from this question and answers that MSBuild is probably going to be the way to go if I want full IDE integration. Any arguments against that?

Upvotes: 1

Views: 256

Answers (3)

david
david

Reputation:

Have you tried NUBuild? It is highly suitable for doing "local builds" by developers. Moreover it will decrease build failure by letting developers catch them early on and not after it has been checked into the source control. Once it has been setup, it is as simple as executing a command in a batch file to build projects. Try it out -

http://nubuild.codeplex.com

Upvotes: 0

Shawn
Shawn

Reputation: 36

MSBuild would be the way to go, so that you can manage dependency configuration in the VS solution and not the nant script. MSBuild will also run the pre and post build commands set in the VS project, however, some VS specific properties are not available. You can have Nant run MSBuild on the solution file.

I work on a project with somewhat complicated builds. We use Cruise Control for continous integration, which checks SVN for modifications and then calls an Nant script, which then calls MSBuild target. All the deployments are done from there. Developers can build and debug with no needed knowledge on how it is deployed, which makes bringing on new developers easy and for them to focus on development only and let the Release Manager manage builds and deployments.

Upvotes: 2

Sayed Ibrahim Hashimi
Sayed Ibrahim Hashimi

Reputation: 44312

Ok I'm a bit biased but MSBuild is definetly the way to go. Currently MSBuild is used to build Visual Studio itself so it is capable. There will also be a new version of MSBuild with Visual Studio 2010 (actually .NET 4.0) that will have a bunch of enhancements including building C++ projects.

Sayed Ibrahim Hashimi

My Book: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

Upvotes: 2

Related Questions