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.
The source code and beta version are available atcodeplex.