Как я могу определить номер версии установленного пакета при запуске в более новой версии установщика - PullRequest
0 голосов
/ 23 апреля 2019

Я создаю установщик новой версии своего программного обеспечения и планирую использовать его для обновления старой версии.При запуске установщика новой версии мне нужно получить номер версии старой версии программного обеспечения и поместить его в переменную для будущего использования.

Я попытался найти реестр в следующем коде, но ничего не былозахвачено.

  <Bundle Name="$(var.ProductName)" Version="$(var.ProductVersion)"
      Manufacturer="$(var.Manufacturer)"
      IconSourceFile="A1-Logo-4.ico"
      UpgradeCode="$(var.BundleUpgradeCode)">

<util:RegistrySearch Id="EXISTS_CURRENT_LANGUAGE_PACKAGE" 
                     Root="HKLM" 
                     Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
                     Value="BundleUpgradeCode"
                     Variable="EXISTS_CURRENT_LANGUAGE_PACKAGE"
                     Result="exists"/>

Я мог обнаружить, что старая версия моего программного обеспечения была установлена ​​встроенной переменной wix [WixBundleInstalled], и мог видеть номер версии старого программного обеспечения в журналах программы установки.Журналы установки выглядят так, как показано ниже.

    [0E64:0C48][2019-04-23T13:43:40]i001: Burn v3.11.1.2318, Windows v6.1 (Build 7601: Service Pack 1), path: C:\Users\XXX\AppData\Local\Temp\{XXXX-4C15-4659-BFBF-XXXX}\.cr\XXXX_v11.26.4.3.exe
    [0E64:0C48][2019-04-23T13:43:40]i000: Initializing string variable 'INSTALL_BUTTON_TEXT' to value 'Install'
    [0E64:0C48][2019-04-23T13:43:40]i009: Command Line: '-burn.clean.room=C:\installer\XXXX_v11.26.4.3.exe -burn.filehandle.attached=200 -burn.filehandle.self=208'
    [0E64:0C48][2019-04-23T13:43:40]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\installer\XXXX_v11.26.4.3.exe'
    [0E64:0C48][2019-04-23T13:43:40]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\installer\'
    [0E64:0C48][2019-04-23T13:43:40]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\XXX\AppData\Local\Temp\XXXX_20190423134340.log'
    [0E64:0C48][2019-04-23T13:43:40]i000: Setting string variable 'WixBundleName' to value 'XXXX'
    [0E64:0C48][2019-04-23T13:43:40]i000: Registry value not found. Key = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\', Value = 'BundleUpgradeCode'
    [0E64:0C48][2019-04-23T13:43:40]i000: Setting numeric variable 'EXISTS_CURRENT_LANGUAGE_PACKAGE' to value 0
    [0E64:0C48][2019-04-23T13:43:40]i102: Detected related bundle: {XXXX-a9f2-420d-918b-XXXX}, type: Upgrade, scope: PerMachine, version: 11.26.4.2, operation: MajorUpgrade
    [0E64:0C48][2019-04-23T13:43:40]i101: Detected package: InstallationMSI, state: Absent, cached: None
    [0E64:0C48][2019-04-23T13:43:40]i104: Detected package: InstallationMSI, feature: ProductFeature, state: Absent
    [0E64:0C48][2019-04-23T13:43:40]i052: Condition 'XXX OR XXXX OR XXXXX' evaluates to true.
    [0E64:0C48][2019-04-23T13:43:40]i199: Detect complete, result: 0x0

Я выбираю способ получения номера версии установленного пакета.Или любое решение будет оценено.Есть идеи?

...