Отключить автоматический откат InstallFiles

Я установил свой первый MSI-установщик сWIX-Toolset 3.6 который включает в себя пользовательские действия дляBackup, Installation а такжеRollback.

Резервное копирование и установка работают нормально, но у меня проблема с моим откатом. Я определил свои пользовательские действия следующим образом:

<!-- Custom actions -->
<CustomAction Id="CA_Install" Return="check" BinaryKey="BIN_CaLibrary" Execute="deferred" DllEntry="CaInstall" />
<CustomAction Id="CA_Rollback" Return="check" BinaryKey="BIN_CaLibrary" Execute="rollback" DllEntry="CaRollback" />
<CustomAction Id="CA_Backup" Return="check" BinaryKey="BIN_CaLibrary" Execute="immediate" DllEntry="CaBackup" />
<CustomAction Id="CA_SetTargetDir" Return="check" BinaryKey="BIN_CaLibrary" Execute="immediate" DllEntry="CaSetTargetDir" />
<CustomAction Id="CA_SetTargetDirAndInstallTypeForInstall" Return="check" Property="CA_Install" Value="InstallType=[INSTALLTYPE];TargetDir=[TARGETDIR]" />
<CustomAction Id="CA_SetTargetDirForRollback" Return="check" Property="CA_Rollback" Value="TargetDir=[TARGETDIR]" />

<!-- Linking custom actions to the install sequence -->
<InstallExecuteSequence>
  <Custom Action="CA_SetTargetDir" Before="AppSearch" />
  <Custom Action="CA_Backup" After="CA_SetTargetDir" />
  <Custom Action="CA_SetTargetDirForRollback" Before="CA_Rollback" />
  <Custom Action="CA_SetTargetDirAndInstallTypeForInstall" Before="CA_Install"/>
  <Custom Action="CA_Rollback" Before="CA_Install"/>
  <Custom Action="CA_Install" Before="InstallFinalize" />
</InstallExecuteSequence>

В моемCA_Backup Я всегда создаю Backup-Directory со старой версией приложения (даже если установка прошла успешно). Когда мойCA_Install возникает исключение, когда установщик переходит к моему собственному действию откатаCA_Rollback, В этом пользовательском действии я удаляю все файлы вTARGETDIR и воспроизвести файлы из Backup-Directory. Он делает именно то, что должен делать, но послеCA_Rollback Wix-Installer автоматически откатит другие пользовательские действия, такие какInstallFiles, И поэтому он удаляет все файлы, которые воспроизводятся из Backup-Directory в моемCA_Rollback до.

Можно ли отключить автоматический откатInstallFiles Custom Action? Или есть другое решение для моей проблемы?

Также странно, что ProgressText CA_Rollback - это не то, что я определил, а стандартный текст WiX-Framework.

<ProgressText Action="CA_SetTargetDir">Getting Installation-Type...</ProgressText>
<ProgressText Action="CA_Backup">Creating Backup-Directory...</ProgressText>
<ProgressText Action="CA_Install">Updating Application...</ProgressText>
<ProgressText Action="CA_Rollback">Rollback the Application...</ProgressText>

Таким образом, когда установщик переходит к CA_Rollback, ProgressText НЕ«Откат приложения ...» но в других пользовательских действиях (CA_SetTargetDir, CA_Backup, CA_Install) ProgressText отображается как определено.

РЕДАКТИРОВАТЬ:
Я нашелДействие DisableRollback и я хотел бы использовать это в моемInstallExecuteSequence:

<DisableRollback After="CA_Rollback" />

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

Ответы на вопрос(1)

Ваш ответ на вопрос