Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Integration into Microsoft Visual Studio 2005

bzr-visualstudio - An integration package that brings the wonderful world of friendly distributed version control to Visual Studio 2005.


  • bazaar - BazaarSharp - the Bazaar class library for .NET

  • banquet - Banquet - the Visual Studio 2005 integration package

    • banquet.status - focus of development

      • tracks Visual Studio projects under revision control,
      • tracks addition, renaming, modification and removal of files and folders in controlled projects,
      • provides status glyphs in the Solution Explorer,
      • provides a status tool window.
    • banquet.explorer

      • organise repositories and branches,
      • clone branches,
      • checkout working copies and switch between branches,
      • update working copies and branches.


  • bzr-visualstudio was developed as part of Google's Summer Of Code 2007 by KlausHartke, mentored by WouterVanHeyst.

  • The Visual Studio integration package exists as an early alpha that implements the most common use cases. It is not ready for production use.
  • There is currently no release package available or planned. The latest version can be found in the banquet.status branch.

  • The project is currently not under active development.


To run from sources you'll need to perform the following steps.

Note: A PLK is not needed and should not be requested from Microsoft for trying out the Bazaar integration.


  1. Visual Studio 2005
    • The integration package does not work with the Express Editions of Visual Studio. At least Standard or Professional Edition is required.
    • It is possible to use the integration package with Visual Studio 2008 with a couple of modifications (see below).
    • The project requires the Visual Studio SDK installed. The latest version is recommended. You should also have the latest Service Pack.
  2. Bazaar 0.90 or above
    • The Bazaar class library for .NET was built around bzrlib 0.90 and needs a few modifications for working with current versions of bzr.
    • Choose the stand-alone installer (recommended) or install Python 2.5 and grab a copy of

    • Prepare for the battle: Bzr_and_SSH, bzr whoami, bzr launchpad-login, ...

Getting the code

  1. bzr branch lp:bzr-visualstudio.

  2. Open the solution in Visual Studio 2005/2008.
    • If you're running Visual Studio 2005, before starting the IDE, set the environment variable VisualStudioIntegration to the path of the VisualStudioIntegration directory of your VSSDK installation.

      • Alternatively, open Banquet.csproj and replace $(VisualStudioIntegration) with that path.

    • If you're running Visual Studio 2008, you'll need to perform the following steps:
      • Convert the solution to VS2008 using the wizard. The wizard will report missing VSSDK build targets.
      • Edit Banquet.csproj and change the VSSDK build targets to <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\VSSDK\Microsoft.VsSDK.targets" />

      • Change the TargetRegistryRoot to <TargetRegistryRoot>Software\Microsoft\VisualStudio\9.0Exp</TargetRegistryRoot> in Banquet.csproj.

      • Replace the reference to Microsoft.VisualStudio.Shell with Microsoft.VisualStudio.Shell.9.0. If required, update other assembly references to 9.0 versions as well.

      • The undocumented assembly Microsoft.VisualStudio.VirtualTreeGrid might not show up in the Add Reference dialog; you'll need to reference it by choosing it manually from the GAC on your machine.

      • Update the DefaultRegistryRoot to @"Software\Microsoft\VisualStudio\9.0" in BanquetPackage.cs.

Compiling and registering with Visual Studio

  1. If you're running 64 bit versions of Windows, make sure to set the solution platform to x86.

  2. Copy python25.dll and all contents of the lib directory from your bzr installation to the bin\x86\Debug directory. Rename to

    • If the Bazaar class library cannot find python25.dll or, you'll get TypeInitializationExceptions during runtime.

  3. The solution should compile now. The integration package will automatically be registered with the Visual Studio Experimental Hive if everything succeeds.

Debugging the package

  1. Set Banquet as StartUp Project.

    • Start external program = <Path to Visual Studio>\Common7\IDE\devenv.exe

    • Command line arguments (VS2005) = /rootsuffix Exp

    • Command line arguments (VS2008) = /ranu /rootsuffix Exp

    • Working directory = <Path to solution directory>\bin\x86\Debug\

  2. Debug > Exceptions > Add "Python.PythonException" to "Common Language Runtime Exception" > Check "Thrown".

  3. Start Debugging (F5). Visual Studio will start a second instance of the IDE (Experimental Hive) which can be debugged in the first instance.
  4. Help > About in the second instance should list "Bazaar".

  5. Select Tools > Options > Source Control > Bazaar.

  6. ???
  7. Profit!