bari 

An advanced build management tool for .NET projects.

Learn more »

Overview

Bari is a build management system, trying to fix Visual Studio's bad parts while keeping the good ones.

Basically it tries to make .NET development more convenient, when

  • The application may consist of a large number of projects
  • There may be several different subsets of these projects defining valuable target products
  • Custom build steps may be required
  • It is important to be able to reproduce the build environment as easily as possible
  • The developers want to use the full power of their IDE

Concepts

The main idea is to generate Visual Studio solutions and projects on the fly as needed, from a concise declarative build description, optimized for human readability.

To keep the build definitions short, bari prefers convention over configuration. Many things has reasonable defaults, and the suite's filesystem layout itself is carrying information.

Example

The following example is part of bari's own build definition:

modules:
    - name: core
      projects:
        - name: bari
          type: executable
          references:
            - gac://System
            - nuget://log4net
            - nuget://Ninject/3.0.1.10
            - nuget://QuickGraph
            - module://Bari.Core
          csharp:
            root-namespace: Bari.Console

The name Bari was named after my dog, who is also responsible for the icon.