Я создаю установщик MSI с базовой установкой каталога и одним настраиваемым действием после установки. Установщик должен поддерживать переустановку во всех диапазонах версий (более новая, старая и та же).
Почти все работает нормально, за исключением переустановки идентичной MSI. При выполнении msiexec того же msi, который установлен в данный момент (но, возможно, других свойств командной строки msiexec), программа установки запускается и завершает работу, но ничего не делает и не отображает ошибку в журналах.
Обновления и понижения работают нормально (при указании 'AllowDowngrades = "yes"'). Переустановка также происходит правильно, когда я собираю новую версию MSI с той же версией, которая установлена в данный момент. Я также попытался установить AllowSameVersionUpgrades вместо AllowDowngrades, но без удачи.
Любые подсказки о том, как мои wxs должны быть настроены, чтобы позволить переустановить тот же файл MSI? В настоящее время мой MajorUpgrade выглядит так:
<MajorUpgrade AllowDowngrades="no" AllowSameVersionUpgrades="yes" Disallow="no" DowngradeErrorMessage="Not allowed to downgrade." IgnoreRemoveFailure="yes" MigrateFeatures="yes" />
То, что я вижу в выводе msiexec как разницу между обычной переустановкой и той же ошибкой установки msi; это начало установщика с упоминанием «FindRelatedProducts. Возвращаемое значение0 ':
Action 14:12:52: INSTALL.
Action start 14:12:52: INSTALL.
Action 14:12:52: FindRelatedProducts. Searching for related applications
Action start 14:12:52: FindRelatedProducts.
Action ended 14:12:52: FindRelatedProducts. Return value 0.
Action 14:12:52: AppSearch. Searching for installed applications
Action start 14:12:52: AppSearch.
AppSearch: Property: NETFRAMEWORK45, Signature: NetFramework45
Action ended 14:12:52: AppSearch. Return value 1.
Action 14:12:52: LaunchConditions. Evaluating launch conditions
Action start 14:12:52: LaunchConditions.
Action ended 14:12:52: LaunchConditions. Return value 1.
Action 14:12:52: ValidateProductID.
Action start 14:12:52: ValidateProductID.
Action ended 14:12:52: ValidateProductID. Return value 1.
Action 14:12:52: CostInitialize. Computing space requirements
При успешном обновлении / понижении версии журнал msiexec выглядит следующим образом:
Action 18:27:21: INSTALL.
Action start 18:27:21: INSTALL.
Action 18:27:21: FindRelatedProducts. Searching for related applications
Action start 18:27:21: FindRelatedProducts.
FindRelatedProducts: Found application: {014FD491-292B-4BFC-BCFB-87121C11BCE9}
Action ended 18:27:21: FindRelatedProducts. Return value 1.
Action 18:27:21: AppSearch. Searching for installed applications
Action start 18:27:21: AppSearch.
AppSearch: Property: NETFRAMEWORK45, Signature: NetFramework45
Action ended 18:27:21: AppSearch. Return value 1.
Action 18:27:21: LaunchConditions. Evaluating launch conditions
Action start 18:27:21: LaunchConditions.
Action ended 18:27:21: LaunchConditions. Return value 1.
Action 18:27:21: ValidateProductID.
Action start 18:27:21: ValidateProductID.
Action ended 18:27:21: ValidateProductID. Return value 1.
Я довольно новичок в Wix, поэтому любые советы о том, как это исправить или что я могу попробовать, приветствуются.
Приветствие.
Пояснение: Я не хочу, чтобы несколько экземпляров одной и той же msi / программы были установлены одновременно, однако я хотел бы принудительно выполнить полную переустановку после повторного выполнения той же самой msi, без предварительного ручного удаления. Это позволяет перенастроить программное обеспечение через свойства msiexec cli и пользовательское действие.