У меня установщик с <Product Id="GUID" Version="3.4.1.15"..
.. Установщик будет запускать кастомные действия, раздается клиентам.
Пытаюсь создать обновление / апгрейд / патч для msi (версия = 3.4.1.16). Новый патч должен выполнять действия только те новые действия, которые являются частью 3.4.16.
Ниже приведен код, с помощью которого я пытался этого добиться. (изменил ProductId="*"
и попробовал AllowSameVersionUpgrades="yes"
.
Программа установки переходит в режим основного обновления, однако она выполняет следующую последовательность действий.
- Удалить версию 15
- Обновите код продукта 15 до кода продукта 16
- Установите продукт 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>