Build Version Increment Add-In Visual Studio
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 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's version.
I've tested the addin with Visual Studio 2005/2008 on C#, VB.NET and C++.NET projects under Windows XP/Vista SP1.
- Different auto increment styles can be set per major, minor, build or revision number.
- 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 have 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.
- YearDecadeStamp: Set the attribute to build year.
- MonthStamp: Set the attribute to build month.
- DayStamp: Set the attribute to build day.
- MonthAndDayStamp: Set the attribute to build month and day.
- 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 modified, 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.
Leave a note if something isn't working for you or check out Yogesh's version on
Yogesh Jagota's version
This project is actually a total rewrite of the Solution level Auto build increment Add-In found on CodeProject. Although it's a great plugin, I didn't feel very happy with it after it modified all project files in a very big solution which me and my
colleagues are working on. Since I didn't noticed it at once, a few days later a colleague started to complain that one of the project assemblies failed to load on the testing environment because the the assembly version had been updated. Whoops ... :S
So next to some leaner and meaner code the big differences are:
- This addin does not touch any project file you didn't select for versioning.
- By default it doesn't update file and assembly version.