Обновление WiX не работает после перехода с одной машины на другую. Как я могу удалить старую версию? - PullRequest
0 голосов
/ 27 апреля 2020

WiX Toolset Версия: 3.11.2.4516

Чтобы переключиться с установки на отдельную машину для установки на пользователя, я изменил свою конфигурацию WiX со следующей:

<Product Id="*" Name="$(var.ProductName)" Language="1033" Version="1.0.0.1"
  Manufacturer="$(var.CompanyName)" UpgradeCode="eec853e6-9345-4be0-908f-958f212c6f30">

  <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" />

  <MajorUpgrade Schedule="afterInstallInitialize"
    DowngradeErrorMessage="A newer version of $(var.ProductName) is already installed" />

На эту (удалить Package/@InstallScope и Package/@InstallPrivileges):

<Product Id="*" Name="$(var.ProductName)" Language="1033" Version="2.0.0.0"
  Manufacturer="$(var.CompanyName)" UpgradeCode="eec853e6-9345-4be0-908f-958f212c6f30">

  <Package InstallerVersion="200" Compressed="yes" />

  <MajorUpgrade Schedule="afterInstallInitialize"
    DowngradeErrorMessage="A newer version of $(var.ProductName) is already installed" />

Теперь продукт устанавливается для пользователя, а не для компьютера. Но <MajorUpgrade> больше не работает. Я также попытался изменить Product/@UpgradeCode на новый GUID и добавить следующее в мою конфигурацию WiX (ниже элемента <MajorUpgrade>):

<Upgrade Id="eec853e6-9345-4be0-908f-958f212c6f30">
  <UpgradeVersion OnlyDetect="no" Property="OLD_SERVICE_INSTALLER_FOUND" Minimum="0.0.0.0" />
</Upgrade>

Но это тоже не работает.

Как я могу удалить старую версию своего программного обеспечения, если я переключился с установки на машину на пользователя?

1 Ответ

0 голосов
/ 27 апреля 2020

Ваш застрял. Это ограничение windows для установщика.

https://docs.microsoft.com/en-us/windows/win32/msi/major-upgrades

Примечание

Если приложение установлено в контексте установки для пользователя, любое серьезное обновление приложения также должен выполняться с использованием контекста для каждого пользователя. Если приложение установлено в контексте установки для каждого компьютера, любое серьезное обновление приложения также должно выполняться с использованием контекста для каждого компьютера. Windows Установщик не устанавливает основные обновления в контексте установки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...