Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Solution level Auto build increment Add-In

0.00/5 (No votes)
13 Jun 2008 2  
Auto build version increment addin for Visual Studio 2005 and 2008

Update

  • 14 Jun 2008
    1. Now both or any of two, AssemblyVersion & AssemblyFileVersion can be updated.
    2. Fixed an error where options window doesn't comes up if project contains a setup or any other unsupported project type.
    3. Source control support added. Fix by S. Brozius.
  • 19 Feb 2008
    1. Support for Solution Folders added.
    2. Fixed a error where instead of updating the attribute, the add-in was updating the comment which is auto added by VS just before the actual attribute.

Introduction

In Visual Studio 2005 or 2008, there is no option for auto incrementing the build numbers on every build. Although many tools exist which enable us to do so, but I do not find them appealing or for daily/frequent use because of many reasons:

  1. Most tools update assembly version on a project level, i.e. you add pre-build or post-build event command lines to a project which call the tool and the tool updates the assembly version number. In such tools, you have to add such events every time you make a project and you cannot make templates for all project types, can you? You also need to specify project path, solution path or AssemblyInfo's path for every project.

  2. Most tools update assembly version based on the solution/project build date. You copy the poject to a new location, your assembly version gets messed up!!

I said "most tools" because there are many tools for this job. I might not have come across one which allows the features my add-in have.

For both the above reasons, I wrote a Visual Studio add-in compatible with both 2005 and 2008. The add-in is compatible with all solutions with either of one or more C# or VB.Net projects or both language projects.

Download

The add-in can be installed by the vsi file which can be downloaded from above.

The add-in is installed in the add-in directory of the version of Visual Studio installed. If you have both 2005 and 2008, it will install in both locations, but it might be possible that the add-in is only added to the add-in directory of Visual Studio 2005. I do not know why it happens, but it does happens on some machines. If this happens, you only need to copy AutoBuildIncrement.dll and AutoBuildIncrement.Addin from the add-in directory of 2005 to that of 2008.

Features

After you install the add-in, whenever you build a project for the first time, a start date variable is added in the project file based on the project creation date. The assembly version is updated based on this variable at every pre build. This behaviour applies to all the solutions you open in the studio, whether new or old.

The auto build numbers are only generated for Revision and Build Number values. You will have to manually update the Major Version and Minor Version values.

Format

The format of the Revision value is:
(months) + (days with a minimum length of 2 with 0 as front padd-ing)

The format of the Build Number value is:
(current hour) + (current minutes)

Example: (C#)
[assembly: AssemblyVersion(1.0.218.1402)]
where the solution was last built after being started since 2 months and 18 days back and was built at 2:02 AM.

Changing the default Features

You can change the default settings of the add-in for any individual solution. Whenever you have a solution opened, you can see the Auto Build Increment Add-in Settings... option in the Tools menu:

Toolmenu.jpg


When you select this option, a dialog is shown where all the projects in their appropriate solution folders (if they exist, that is) are listed with properties for all the individual projects:

SettingsWindow.jpg

The settings are pretty self explantory.

  • Reset: Reset 'AssemblyInfo' file date after modification: If checked, the last modified date of AssemblyInfo is automatically set to its previous setting after the modifications. (default:true)
  • Start Date: The date on which the project was started on. (default:project creation date)
  • Path: A read only property for displaying full path name of the project. (default: project's full path)

  • Enable: Enable auto build version update for the project. (default:true)

References

Feedback

I will love to hear your comments on this add-in. I will also like to know any features and suggestions you people can make for the improvement of the add-in.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here