<_BuildNumber>$(OfficialBuildId)
<_BuildNumber Condition="'$(OfficialBuildId)' == ''">$([System.DateTime]::Now.ToString(yyyyMMdd)).1
true
false
<_VersionInProject>$(Version)
<_PrereleaseIndex>$(Version.IndexOf('-'))
$(Version.SubString(0, $(_PrereleaseIndex)))
$(Version)-beta.$(_BuildNumber)
<_BuildNumberYY>$(_BuildNumber.Substring(2, 2))
<_BuildNumberMM>$(_BuildNumber.Substring(4, 2))
<_BuildNumberDD>$(_BuildNumber.Substring(6, 2))
<_BuildNumberR>$(_BuildNumber.Substring(9))
<_VersionPrefixMajor>$(Version.Split('.')[0])
<_VersionPrefixMinor>$(Version.Split('.')[1])
<_VersionPrefixPatch>$(Version.Split(".-")[2])
<_FileMajor>$(_VersionPrefixMajor)
<_FileMinor>$([MSBuild]::Add(
$([MSBuild]::Multiply($(_VersionPrefixMinor), 100)),
$([System.Convert]::ToInt32($([MSBuild]::Divide($(_VersionPrefixPatch), 100))))
))
<_FilePatch>$([MSBuild]::Add(
$([MSBuild]::Multiply(
$([MSBuild]::Modulo($(_VersionPrefixPatch), 100)),
100)),
$(_BuildNumberYY)
))
<_FileRevision>$([MSBuild]::Add(
$([MSBuild]::Add(
$([MSBuild]::Multiply($(_BuildNumberMM), 5000)),
$([MSBuild]::Multiply($(_BuildNumberDD), 100))
)),
$(_BuildNumberR)
))
$(_FileMajor).$(_FileMinor).$(_FilePatch).$(_FileRevision)