I am trying to automate the process for setting the Version for all DLL's, after spending some time I came to know the AssemblyInfo Task with which it can most likely be achieved.
So I went ahead and installed it, specifically version 1.0.51130.0.
After Installing, I manually added the Import Tag (by unloading the each project) of AssemblyInfoTask in .cspoj files (the solution has more than 35 proj files).
<Import Project="$(MSBuildExtensionsPath)\Microsoft\AssemblyInfoTask\Microsoft.VersionNumber.Targets"/> Next I modified the Microsoft.VersionNUmber.Target file which will be installed in path: C:\Program Files\MSBuild\Microsoft\AssemblyInfoTask, and I modified the following section:
<!-- Properties for controlling the Assembly Version --> <PropertyGroup> <AssemblyMajorVersion>4</AssemblyMajorVersion> <AssemblyMinorVersion>0</AssemblyMinorVersion> <AssemblyBuildNumber></AssemblyBuildNumber> <AssemblyRevision></AssemblyRevision> <AssemblyBuildNumberType>DateString</AssemblyBuildNumberType> <AssemblyBuildNumberFormat>01MMdd</AssemblyBuildNumberFormat> <AssemblyRevisionType>AutoIncrement</AssemblyRevisionType> <AssemblyRevisionFormat>00</AssemblyRevisionFormat> </PropertyGroup> <!-- Properties for controlling the Assembly File Version --> <PropertyGroup> <AssemblyFileMajorVersion>4</AssemblyFileMajorVersion> <AssemblyFileMinorVersion>0</AssemblyFileMinorVersion> <AssemblyFileBuildNumber></AssemblyFileBuildNumber> <AssemblyFileRevision></AssemblyFileRevision> <AssemblyFileBuildNumberType>DateString</AssemblyFileBuildNumberType> <AssemblyFileBuildNumberFormat>01MMdd</AssemblyFileBuildNumberFormat> <AssemblyFileRevisionType>AutoIncrement</AssemblyFileRevisionType> <AssemblyFileRevisionFormat>00</AssemblyFileRevisionFormat> </PropertyGroup> Next I set the assemblyInfo.cs file's version to 1.0.0.0 in every project. Finally I saved and close it, reopened solution, and built. It works like a champ!
Now what want is to customize the Version to 4.0.1053.1 where 10 is the part of year indicator which is 2010 and 53 denotes the week number, at last 1 denotes revision number.
How to achieve this using the AssemblyInfo Task? I came across several posts that a new version of AssemblyInfo Task is available in Build Extension Pack.
I have installed the MSBuild Extension Pack December 2010 and its version is MSBuild Extension Pack 4.0.2.0 Installer
AssemblyVersion: Specifies the version of the assembly being attributed. AssemblyFileVersion: Instructs a compiler to use a specific version number for the Win32 file version resource.
You can set the assembly version using the AssemblyVersionAttribute. Assembly attributes are usually applied in the AssemblyInfo.
First.. use a globalassemblyinfo.cs that is linked from each project. Add its as linked file to each project. This means you update one file, not 30+ assemblyinfo files...then:
use MSBuild.Community.Tasks....
Then call
<AssemblyInfo CodeLanguage="CS" OutputFile="$(VersionFile)" AssemblyCompany="Company" AssemblyProduct="Product" AssemblyCopyright="Copyright © Company 2011" ComVisible="false" AssemblyVersion="$(BUILD_NUMBER)" AssemblyFileVersion="$(BUILD_NUMBER)" /> Assuming you have something like:
<Import Project=".\tasks\MSBuild.Community.Tasks.Targets"/>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With