30 Mart 2015 Pazartesi

Build Version Increment - Visual Studio With T4


Visual Studio 2012 için otomatik build versionunu arttırma işlemini uyarlama süreçini resimlerle anlatacağım. 

Uygulamak istediğimiz projemizde ilk olarak AssemblyInfo.cs sınıfı üzerinden AssemblyFileVersion özelliğini kapatmamız gerekiyor. 




Sonrasında projemize "AssemblyFileVersion.tt" ismi ile  Text Template ekliyelim.





AssmblyFileVersion.tt dosyamızın içeriğini aşağıdaki gibi olduralım. Her build işleminde version değerinin revision özelliğini +1 yapmaktadır. (Major.Minor.Build.Revision)




 

<#@ template language="C#" hostSpecific="True"#>
<#@ output extension="cs" #>
<#@ import namespace="System.IO" #>
<#
	int revisionNumber;
	try
	{
		using(var f = File.OpenText(Host.ResolvePath("AssemblyFileVersion.cs")))
		{
			string s = f.ReadLine().Replace("//","");
			revisionNumber = int.Parse(s) + 1; 
		}
	}catch
	{ 	
		revisionNumber = 0; 
	}
#>
//<#=revisionNumber#>
// 
// This code was generated by a tool. Please do not change this document in any of its parts.
// 

using System.Reflection;

[assembly: AssemblyFileVersion("1.0.0.<#= revisionNumber #>")] 




Son adım bir adım kaldı. AssemblyFileVersion.tt dosyasını her build işleminden önce çalıştırmak. Projemizin Property > Builds Events > Pre-build event command line kısmında aşağıdaki kodu eklememiz yeterli.


 

set textTemplatingPath="%CommonProgramFiles(x86)%\Microsoft Shared\TextTemplating\$(VisualStudioVersion)\texttransform.exe"
if %textTemplatingPath%=="\Microsoft Shared\TextTemplating\$(VisualStudioVersion)\texttransform.exe" set textTemplatingPath="%CommonProgramFiles%\Microsoft Shared\TextTemplating\$(VisualStudioVersion)\texttransform.exe"
%textTemplatingPath% "$(ProjectDir)AssemblyFileVersion.tt"


Projemizi derliyelim ve dosya version değerini kontrol edelim. sürekli arttığını göreceksiniz.





Proje örneği : https://drive.google.com/file/d/0ByRFI3ULXVPuZ3NvaXIxMExHT1E/view