Versioning in TFS 2013

Apr 28, 2015 at 7:05 PM
Edited Apr 28, 2015 at 7:10 PM
Hi all,

I've looked at this article and question as to whether this is applicable to VS 2013 (or 2015).

Also, I'm a bit confused as to the context of this site. Is this to version with and additional third party app tied to TFS or can I use the information found here to version strictly in TFS through Build Definitions or customized Built Templates? If I'm in the wrong place as this only deals with external third party code/app(s) them I'm sorry for the post. If not...

It might be advantageous to quickly look at what we do now. In our script we have Major, Minor, Build, and Revision variables that are manipulated both manually and in code. Let's say we are creating a version 10 of our product. I will go in and edit the Major (10), Minor (0) and Build (0) numbers manually before that versions first script run. The Revision number is bumped by 1 with each subsequent build. So, build one of v10 will be, then, etc.

This 4 segment version is then used to set the PRODUCT version of the compiled files.

Later in the build script, we do a dance to get three position version number for our Windows Installer packages since Microsoft only utilizes #.#.# in that realm. It's basically Build# * 256 + Revision# or something to that effect. This is then passed in to the package. I guess this part of it could or will need to be handled with an external script and InvokeProcess, which is fine.

My main concern deals with how versioning works within the confines of a TFS Builds. I believe I read something about tokens elsewhere that may be the answer. What I would like to happen is that all FILE versions are bumped automatically with each build. I don't know if there is a setting that can be utilized within each solution/project that could handle that or not. Then I'm hoping I can somehow get the Major, Minor, Build and Revision numbers for script use, etc.

I did see the format options in the above linked material, but like I said earlier, I don't know if that would still apply to VS 2013 as I don't see those settings in that version.

Is there a canned way of going about this or should all of this be scripted in some way with maybe Pre MSBuild/compile script set up in the Build Definition.

Any info appreciated!!