WIX обновляет только версию, а не установленные файлы

У меня установщик с <Product Id="GUID" Version="3.4.1.15".. .. Установщик будет запускать кастомные действия, раздается клиентам.

Пытаюсь создать обновление / апгрейд / патч для msi (версия = 3.4.1.16). Новый патч должен выполнять действия только те новые действия, которые являются частью 3.4.16.

Ниже приведен код, с помощью которого я пытался этого добиться. (изменил ProductId="*" и попробовал AllowSameVersionUpgrades="yes".

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

  1. Удалить версию 15
  2. Обновите код продукта 15 до кода продукта 16
  3. Установите продукт 16 как новую установку.

Таким образом, все новые сценарии установки снова выполняются во время процесса исправления.

Ниже приведен образец пакета Test, который иллюстрирует то, что я говорю.

Требуется выполнить только шаг 2 для версий 3.4.15–3.4.16 и выполнить шаги 1 и 2 для новой установки 3.4.16.

Возможно, я предпринял неправильные шаги. Пожалуйста, помогите достичь этого.

Спасибо

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="WIXInstaller" Language="1033" Version="1.0.1.16" Manufacturer="ShoreTel" UpgradeCode="86c5a799-abe4-4949-a50c-f5aea92e5537">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

    <MajorUpgrade AllowSameVersionUpgrades="yes" DowngradeErrorMessage="A newer version of [ProductName] is already installed." Schedule="afterInstallInitialize" />
    <MediaTemplate /> 

    <Feature Id="ProductFeature" Title="WIXInstaller" Level="1">
        <ComponentGroupRef Id="ProductComponents" />
  <ComponentRef Id="base.ver" />
</Feature> 
</Product>

<Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
    <Component Id="base.ver" DiskId="1" Guid="E1B7D00A-D6D8-4594-B4E1-E9AF67877132">
      <File Source="base.ver" KeyPath="yes" />
    </Component>
            <Directory Id="INSTALLFOLDER" Name="WIXInstaller" />
        </Directory>
    </Directory>
</Fragment>

<Fragment>
<InstallExecuteSequence>
  <!-- SQLCMD commands preparation -->
  <Custom Action="fstInstall" After="InstallFiles">NOT Installed</Custom>
  <Custom Action="upgradeInstall" After="InstallFiles">UPGRADINGPRODUCTCODE</Custom>
  <Custom Action="remove" After="InstallFiles">REMOVE</Custom>


</InstallExecuteSequence>
<CustomAction Id="remove" Script="vbscript">
  <![CDATA[
MsgBox("Remove 16")
]]>
</CustomAction>
<CustomAction Id="fstInstall" Script="vbscript">
      <![CDATA[
MsgBox("First Install : 16")
]]>
</CustomAction>
<CustomAction Id="upgradeInstall" Script="vbscript">
  <![CDATA[
MsgBox("Upgrade + Install : 16")
]]>
</CustomAction>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
        <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
        <!-- <Component Id="ProductComponent"> -->
            <!-- TODO: Insert files, registry keys, and other resources here. -->
        <!-- </Component> -->
    </ComponentGroup>
</Fragment>


person Raghav    schedule 05.08.2016    source источник


Ответы (1)


Основное обновление - это удалить-> установить. Если вы хотите изменить существующую установку, вам следует использовать патч.

person BBR    schedule 06.08.2016