Unable to format string in desired format - WiX

21 views Asked by At

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>
0

There are 0 answers