I am having the below snippet in inventory.wxi file. I have BuildVersion = 10.7.5896.4556 (an example reference). I want to have the formatted string in FinalVersion as 10.58.9645.56 (don't want to have 7 after the first . character).
Below snippet is not giving the desired output. Need your suggestions how can it be improved further?
<?xml version="1.0" encoding="utf-8"?>
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define BuildVersion = "10.7.5896.4556"> ?>
<?define TempVersion = $(var.BuildVersion) ?>
<?define firstPart = $(var.TempVersion).Substring(0, $(var.TempVersion).IndexOf('.')) ?>
<?define secondPart = $(var.TempVersion).Substring($(var.TempVersion).IndexOf('.') + 1, $(var.TempVersion).IndexOf('.', $(var.TempVersion).IndexOf('.') + 1) - $(var.TempVersion).IndexOf('.') - 1) ?>
<?define thirdPart = $(var.TempVersion).Substring($(var.TempVersion).IndexOf('.', $(var.TempVersion).IndexOf('.') + 1) + 1, $(var.TempVersion).IndexOf('.', $(var.TempVersion).IndexOf('.', $(var.TempVersion).IndexOf('.') + 1) + 1) - $(var.TempVersion).IndexOf('.', $(var.TempVersion).IndexOf('.') + 1) - 1) ?>
<?define fourthPart = $(var.TempVersion).Substring($(var.TempVersion).LastIndexOf('.') + 1) ?>
<?define FinalVersion = $(var.firstPart) + '.' + $(var.thirdPart).Substring(0, 2) + '.' + $(var.thirdPart).Substring(2, 2) + $(var.fourthPart).Substring(0, 2) + '.' + $(var.fourthPart).Substring(2) ?>
</Include>