Finally, after years of struggling with AssemblyInfo.cs files to be updated to track assembly versioning, here IS an EASY WAY to do this thing, which should have been made easy in the first place in TFS. In the past, I used a more sophisticated way of doing it.
The credit to this method goes to Steve Fenton, who explained his method called "Automatically Updating Your AssemblyInfo The Wrong Way".
To me it is less elegent than doing a full workflow foundation solution, but it solves my problem quick ! So that a good solution. Secondly, maintenability is also great, as it is based on a plain text Batch file. No need to recompile deploy, …
The secret lies the following steps :
- the only mini-change that one could barely notice the link icon on the AssemblyInfo.cs file. Here is a representation in both Visual Studio 2013 Ultimate preview and Visual Studio 2012 Ultimate
ZOOM ! on AssemblyInfo.cs
The result is instantaneous … on every single step of my software factory, it is highly traceable with the unique ID of the TFS Team Build of 370, as illustrated below.
(1) Displays on an “About Page” the exact version of the application, based on the assembly version of the AssemblyInfo.cs,
(2) This version number is dynamically generated by TFS Team Build during the Continuous Deployment process (called _CD).
This guaranties the uniqueness of this number. In this example, it is Build# 370, which gives a version 22.214.171.1240.
As a result, we could go up to 1.0.0. 65534,
where 65534 = UInt16.MaxValue – 1= 65535-1
Then you can open the TFS Drop Folder to verify that ALL your assemblies have the correct assembly version.
(3) From TFS Cloud, you’ll get a Zip file that has got the unique suffix “CD_370”, and in the App.publish, you could unzip the Windows Azure package *.cspkg
(4) Once unzipped into the folder “???CD_370”, you’ll see the DLLs
(5) Check the first DLL; we could see the magic happened: The assembly is tagged as 126.96.36.1990
(6) Check another Assembly: still 188.8.131.520 !!
DONE ! and Enjoy !!
And the most time consuming part to was to find the proper solution, since many great alternatives are present in CodePlex. I’m sharing this trick hoping it’ll save you plenty of time… and another wish is that one day, an easy feature to activate will appear TFS / VSO !!
Note: If needed, here is an example of a batch file.
ECHO //// This file is auto generated by AssemblyVersion.bat >> %outfile%
ECHO [assembly: AssemblyConfiguration("")] >> %outfile%
ECHO //// Version information for an assembly consists of the following four values:
REM %tfstool% checkin %outfile% /comment:"***NO_CI*** Assembly Info Increment" /noprompt