Build Version Increment Add-In Visual Studio

Project Description

An addin for Visual Studio 2005/2008 to auto increment build versions of projects.

Somehow Visual Studio doesn’t come with an option to only auto increment the build version of the AssemblyFileVersion attribute. Sure, by placing an * in the AssemblyVersion attribute and leaving the the AssemblyFileVersion out the compiler will auto generate build versions for both but this is a pain to maintain when you’re releasing signed assemblies. Besides I don’t feel like grabbing a calculator just to see when version 1.0.3394.25054 has been build. I needed a little more control.

I tried alot of the addin’s freely available on the web but didn’t find one that satisfied my needs. Some were way too big, others required that the addin was installed by every person on the team and some simply didn’t work. The only one I found to do the job was made by Yogesh Jagota, which I used until I had a little accident with it. After that I completely rewrote the addin. The base concepts are still the same as Yogesh his version.

I’ve tested the addin with Visual Studio 2005/2008 on C#, VB.NET and C++.NET projects under Windows XP/Vista SP1.

Functionality

  • Different auto increment styles can be set per major, minor, build or revision number. New!
  • Supports C#, VB.NET and C++.NET projects.
  • Not required to be installed by all project members. Configuration is shared via properties in the solution and project files. Developers who don’t have the addin won’t feel a thing.
  • Automatically checks out required files if under source control.
  • Can be configured per solution and/or per project.
  • Can be configured to update only on certain configuration builds (debug, release, any or custom)
  • Can update assembly attributes in an external source file instead of the default AssemblyInfo.
  • Might help you becoming more successful … but then again … maybe not.

How does it work?

After you installed the addin, fire off Visual Studio and open your favorite solution. Your tools menu should contain an entry for the increment settings. The addin is not visible if no solution is open.

Clicking on this will display a dialog containing a mini solution explorer. Here you can select the solution or one of the available projects and change it’s auto versioning properties.

The property grid contains the following values you can modify:

  • Versioning Style. Here you can configure per version attribute the increment scheme you wish to use. Options are:
    • None: Don’t update this attribute.
    • Increment: Simple +1 increment per build.
    • TimeStamp: Set the attribute to the current time. (HHMM)
    • YearStamp: Set the attribute to the current year. (YYYY)
    • DeltaBaseDate: Use the Yogesh increment scheme for this attribute.
    • YearDayOfYear: Set the attribute to the current year followed by the day of the year. (YYDDD)
    • DeltaBaseYearDayOfYear: Set the attribute to the delta base year including day of year. (YYDDD)
    • DeltaBaseYear: Set the attribute to the delta base year.
  • Update file version. Setting this to true will update the AssemblyFileVersion attribute.
  • Update assembly version. Setting this to true will update the AssemblyVersion attribute.
  • Assembly info filename. If your project or solution isn’t using the default AssemblyInfo.(cs|vb|cpp) file to set the assembly attributes, you can specify it here. Note that the path is stored relative so this also works for other project members.
  • Configuration name. Set this to the configuration name (Debug, Release, …) which should be active.
  • Start date. Set this to a custom start date if you’re using one of the delta versioning types.

Whenever one of the projects in the solution is beeing build, the addin kicks in and updates the required attributes. If the target file containing the attributes is under source control the addin will check it out.

Download

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: