diff --git a/Scripts/Prepare-Build.ps1 b/Scripts/Prepare-Build.ps1
index 564ff1a57254376750f60fc8704eb643792c24b8..cb0cea6a21aa43b8a469489ecd47bd5dbd5e3eac 100644
--- a/Scripts/Prepare-Build.ps1
+++ b/Scripts/Prepare-Build.ps1
@@ -9,7 +9,7 @@ function Write-BuildDetails {
         [String]$Target,
 
         [Parameter(Mandatory=$True)]
-        [String]$CommitName,
+        [Array]$Desc,
 
         [Parameter(Mandatory=$True)]
         [String]$Branch,
@@ -18,37 +18,59 @@ function Write-BuildDetails {
         [String]$Date
     )
 
+    $CommitName = "$($Desc[0]).$($Desc[1])-$($Desc[2])-$($Desc[3])"
     Write-Output "Generating [$($Target)]..."
-    Write-Output $("
+    Write-Output " > $($CommitName)"
+    $CSharp = $("
     public static class BuildDetails
     {
         public const string GitCommitName = `"$($CommitName)`";
         public const string GitBranch = `"$($Branch)`";
+        public const string GitMajor = `"$($Desc[0])`";
+        public const string GitMinor = `"$($Desc[1])`";
+        public const string GitPatch = `"$($Desc[2])`";
         public const string BuildDate = `"$($Date)`";
-    }") > $Target
+    }")
+    Write-Verbose $CSharp
+    Write-Output $CSharp > $Target
 }
 
+function Parse-GitDescribe([string]$CommitName) {
+    Write-Verbose "Parsing 'git describe' result [$($CommitName)]..."
+    try {
+        $Items = $CommitName.Split('-').Split('.')
+        if ($Items.Length -ne 4) { throw }
+    }
+    catch {
+        throw "Can't parse commit name [$($CommitName)]!"
+    }
+    Write-Verbose "Just some $($Items[2]) commits after the last tag."
+    Return $Items
+}
+
+
 $ErrorActionPreference = "Stop"
 
 $oldpwd = pwd
 cd $ProjectDir -ErrorAction Stop
 
 try {
-    $CommitName = & git describe --tags
+    $CommitName = & git describe --tags --long --match "[0-9].[0-9]"
     if (-Not $?) { throw }
     $GitStatus = & git status --porcelain
     if (-Not $?) { throw }
     $GitBranch = & git symbolic-ref --short HEAD
     if (-Not $?) { throw }
 
+    $DescItems = Parse-GitDescribe $CommitName
+
     if ($GitStatus.Length -gt 0) {
-        Write-Output "NOTE: repository has uncommitted changes!"
+        $StatusWarning = "  <--  WARNING: repository has uncommitted changes!"
         $CommitName = "$($CommitName)-unclean"
     }
 }
 catch {
     $CommitName = "commit unknown"
-    $GitStatus = "status unknown"
     $GitBranch = "branch unknown"
     Write-Output "$(">"*8) Running git failed, using default values! $("<"*8)"
 }
@@ -64,10 +86,10 @@ $BuildDetailsCS = "$($ProjectDir)\..\Resources\BuildDetails.cs"
 Write-Output $CommitName > $BCommit
 Write-Output $Date > $BuildDate
 
-Write-Output $Date
-Write-Output $CommitName
-Write-Output $GitBranch
+Write-Output "build-date: $($Date)"
+Write-Output "git-branch: $($GitBranch)"
+Write-Output "git-description: $($CommitName)$($StatusWarning)"
 
-Write-BuildDetails $BuildDetailsCS $CommitName $GitBranch $Date 
+Write-BuildDetails $BuildDetailsCS $DescItems $GitBranch $Date 
 
 cd $oldpwd
\ No newline at end of file