Hi everybody,
We have a problem with the different ways in which vc++ 2005 projects & .net assemblies are assigned the fileversion & assemblyversion respectively.
Our projects consist of large number of vc++ 2005 projects along with some .net 2.0 projects. We want to update the versions of executables after every build (increment the buildversion/ build number).
We store version information for entire project in an INI file which has following fields:
majorverion, minorversion, buildversion & releaseversion.
For vc++ projects we define 'VersionInfo' property set from 'Win32 Version Info' and for .Net projects, we define '.NetAssemblyInfo' property set from '.Net Assembly Info'. And we load these property-sets from the INI file, using 'PropertySet load from INI file' action.
To update the version of vc++ 2005 project executables we use 'win 32 version info updater' action and to update the version of .net project executables we use 'AssemblyInfo updater' action. Now, what we see is, if the ini file contains following values.
[VersionInfo]
MajorVersion=1
MinorVersion=0
ReleaseVersion=0
BuildVersion=2
Then, vc++ project executables will get 1.0.0.2 as fileversion and .net executables will get 1.0.2.0 as assemblyversion. For .net project executables, we are updating the 'assemblyfileversion' attribute in 'AssemblyInfo updater' action and assigning the 'AssemblyVersion' value to 'AssemblyFileVersion'. This makes project executables from same build have different fileversions (although they both mean the same) i.e. 1.0.0.2 & 1.0.2.0.
One solution could be instead of equating .net executable fileversion to its assemblyversion, we could assign fileversion number that looks equivalent to vc++ project executables. Only problem with this might be the assemblyversion & fileversion of the same .net executable would have different values or formats.
We would like to know what the best practice is.
BTW, we are using FinalBuilder 6.2.0.1019
Thanks in advance and sorry for such a long post.