#[" Prepares data - versions, revBuild & information from git"]#[vartStart=$([System.DateTime]::Parse("2015/01/15").ToBinary())]#[vartNow=$([System.DateTime]::UtcNow.Ticks)]#[varrevBuild=$([System.TimeSpan]::FromTicks($([MSBuild]::Subtract($(tNow),$(tStart)))).TotalMinutes.ToString("0"))]#[vartplVersion=#[Fileget("Version.tpl")]]#[varpDir=vsSolutionBuildEvent/]#[varpDirBridge=Bridge/]#[varpDirCIM=CI.MSBuild/]#[varpDirDevenv=Devenv/]#[varpDirProvider=Provider/]#[varnumSBE=#[Fileget(".version")]]#[varnumBridge=#[Fileget("#[var pDirBridge].version")]]#[varnumCIM=#[Fileget("#[var pDirCIM].version")]]#[varnumDevenv=#[Fileget("#[var pDirDevenv].version")]]#[varnumProvider=#[Fileget("#[var pDirProvider].version")]]#[" the 0 it's the reserved number for patches from external assemblies /see AssemblyInfo "]#[varnum0Bridge=#[varnumBridge].0]#[varnum0CIM=#[varnumCIM].0]#[varnum0Devenv=#[varnumDevenv].0]#[varnum0Provider=#[varnumProvider].0]
#[(#[Fileexists.directory(".git")]&&#[Fileexists.file("git.exe",true)]){#[varbranchSha1=#[Filesout("git","rev-parse --short HEAD")]]#[varbranchName=#[Filesout("git","rev-parse --abbrev-ref HEAD")]]#[varbranchRevCount=#[Filesout("git","rev-list HEAD --count")]]#[varcsVersion=$(tplVersion.Replace(%branchName%,"$(branchName)").Replace(%branchSha1%,"$(branchSha1)").Replace(%branchRevCount%,"$(branchRevCount)"))]}else{#[varcsVersion=$(tplVersion.Replace(%branchName%,"-").Replace(%branchSha1%,"-").Replace(%branchRevCount%,"-"))]}]#[" Updating version for 'vsSolutionBuildEvent'. Note: * For getting the main project path, sample: #[var pDir = $($(ProjectDir:$(SolutionName)))]"]#[varcs=$(csVersion.Replace(%Version%,"$(numSBE.Replace(".", ",")), $(revBuild)").Replace(%namespace%,""))]#[varcs=$(cs.Replace(%VersionRevString%,"$(numSBE).$(revBuild)").Replace(%VersionString%,"$(numSBE)"))]#[Filewrite("#[var pDir]Version.cs"):#[varcs]]#[" .vsixmanifest"]#[($(Configuration)~="_with_revision"||$(Configuration)~="CI_"){#[varnumSBE=#[varnumSBE].#[varrevBuild]]}]#[Filereplace.Regexp("#[var pDir]/source.extension.vsixmanifest","<Version>[0-9\.]+</Version>","<Version>#[var numSBE]</Version>")]
#[" TODO: functions or templates (with delay of the evaluation) currently it's can be like this: #[var template = ##[var box = #[var cs = $$(...)] ] ] #[var eval = #[var template]] however... inconvenient, not useful and unstable (not for all cases) ..."]#[" Updating version for 'Bridge'."]#[varcs=$(csVersion.Replace(%Version%,"$(num0Bridge.Replace(".", ",")), $(revBuild)").Replace(%namespace%,".Bridge"))]#[varcs=$(cs.Replace(%VersionRevString%,"$(num0Bridge).$(revBuild)").Replace(%VersionString%,"$(num0Bridge)"))]#[Filewrite("#[var pDirBridge]Version.cs"):#[varcs]]#[" Updating version for 'CI.MSBuild'."]#[varcs=$(csVersion.Replace(%Version%,"$(num0CIM.Replace(".", ",")), $(revBuild)").Replace(%namespace%,".CI.MSBuild"))]#[varcs=$(cs.Replace(%VersionRevString%,"$(num0CIM).$(revBuild)").Replace(%VersionString%,"$(num0CIM)"))]#[Filewrite("#[var pDirCIM]Version.cs"):#[varcs]]#[" Updating version for 'Devenv'."]#[varcs=$(csVersion.Replace(%Version%,"$(num0Devenv.Replace(".", ",")), $(revBuild)").Replace(%namespace%,".Devenv"))]#[varcs=$(cs.Replace(%VersionRevString%,"$(num0Devenv).$(revBuild)").Replace(%VersionString%,"$(num0Devenv)"))]#[Filewrite("#[var pDirDevenv]Version.cs"):#[varcs]]#[" Updating version for 'Provider'."]#[varcs=$(csVersion.Replace(%Version%,"$(num0Provider.Replace(".", ",")), $(revBuild)").Replace(%namespace%,".Provider"))]#[varcs=$(cs.Replace(%VersionRevString%,"$(num0Provider).$(revBuild)").Replace(%VersionString%,"$(num0Provider)"))]#[Filewrite("#[var pDirProvider]Version.cs"):#[varcs]]
script file: https://bitbucket.org/3F/vssolutionbuildevent/src/master/.vssbe
Results for samples:
_