Click here to Skip to main content
15,888,193 members
Articles / Programming Languages / Visual Basic
Article

Solution level Auto build increment Add-In

Rate me:
Please Sign up or sign in to vote.
4.45/5 (14 votes)
13 Jun 2008CPOL4 min read 166.6K   68   73
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, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
India India

Comments and Discussions

 
GeneralRe: No settings menu entry Pin
Yogesh Jagota6-Dec-08 22:36
Yogesh Jagota6-Dec-08 22:36 
GeneralDifferent time zones... Pin
alexander ignatov4-Dec-08 2:04
alexander ignatov4-Dec-08 2:04 
GeneralRe: Different time zones... Pin
Yogesh Jagota6-Dec-08 11:54
Yogesh Jagota6-Dec-08 11:54 
GeneralExcellent Plugin Pin
Brandon Ayers3-Nov-08 8:43
Brandon Ayers3-Nov-08 8:43 
GeneralRe: Excellent Plugin Pin
Yogesh Jagota6-Dec-08 11:53
Yogesh Jagota6-Dec-08 11:53 
General2 problems I had with this tool Pin
EuGenius_Krivbass22-Oct-08 23:57
EuGenius_Krivbass22-Oct-08 23:57 
GeneralRe: 2 problems I had with this tool Pin
Yogesh Jagota6-Dec-08 11:53
Yogesh Jagota6-Dec-08 11:53 
QuestionIs VS 2008 / VB supported? Pin
Acidreverb24-Jul-08 5:42
Acidreverb24-Jul-08 5:42 
Mr Jagota,

I downloaded and installed your plug-in. This seems to be a much cleaner solution than others I have found. The install was successful and the plug-in options show up properly in the tools menu. I checked all of the settings and they look good.

I have:
Reset: True
Start Date: 6/1/2008
Path: <correct project="" path="">
AssemblyFileVersion: True
AssemblyVersion: True

I have the following in AssemblyInfo.vb
<assembly: xmlns:assembly="#unknown">
<assembly:>

I am using System.Reflection.Assembly.GetExecutingAssembly.GetName.Version.ToString to get the version information

The version seems to stay set at 1.0.0.0

I have built the project and the solution. I have tried closing and reopening.

Any suggestions?

-J
AnswerRe: Is VS 2008 / VB supported? Pin
Yogesh Jagota24-Jul-08 6:10
Yogesh Jagota24-Jul-08 6:10 
GeneralRe: Is VS 2008 / VB supported? Pin
Acidreverb24-Jul-08 6:16
Acidreverb24-Jul-08 6:16 
GeneralRe: Is VS 2008 / VB supported? Pin
Yogesh Jagota24-Jul-08 6:20
Yogesh Jagota24-Jul-08 6:20 
GeneralRe: Is VS 2008 / VB supported? Pin
Acidreverb24-Jul-08 6:28
Acidreverb24-Jul-08 6:28 
QuestionUninstal ? How ? Pin
YanTe17-Jun-08 19:25
YanTe17-Jun-08 19:25 
AnswerMessage Closed Pin
17-Jun-08 19:36
YanTe17-Jun-08 19:36 
GeneralRe: Uninstal ? How ? Pin
Yogesh Jagota17-Jun-08 19:59
Yogesh Jagota17-Jun-08 19:59 
Jokerealise Pin
mary_sa14-Jun-08 3:19
mary_sa14-Jun-08 3:19 
GeneralRe: realise Pin
Yogesh Jagota14-Jun-08 3:55
Yogesh Jagota14-Jun-08 3:55 
GeneralRe: realise Pin
mary_sa14-Jun-08 6:35
mary_sa14-Jun-08 6:35 
GeneralRe: realise Pin
Yogesh Jagota14-Jun-08 6:52
Yogesh Jagota14-Jun-08 6:52 
Question? VS.NET 2003 Pin
Synetech14-May-08 11:43
Synetech14-May-08 11:43 
AnswerRe: ? VS.NET 2003 Pin
Yogesh Jagota13-Jun-08 22:49
Yogesh Jagota13-Jun-08 22:49 
QuestionSlick but How Do I See it Work? [modified] Pin
CodeAlien14-May-08 3:53
CodeAlien14-May-08 3:53 
AnswerRe: Slick but How Do I See it Work? Pin
Yogesh Jagota13-Jun-08 22:50
Yogesh Jagota13-Jun-08 22:50 
Generalvery nice work, one suggestion only Pin
Dragan Matic13-May-08 1:29
Dragan Matic13-May-08 1:29 
NewsRegarding checking out files that are under source-control Pin
S. Brozius23-Apr-08 3:33
S. Brozius23-Apr-08 3:33 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.