Когда ваш новый пакет запускает RemoveExistingProducts, старый кэшированный MSI должен быть исправлен, и он должен быть правильно удален.

я есть что-то вроде этого:

<InstallExecuteSequence>
  <RemoveExistingProducts After="InstallValidate"/>
</InstallExecuteSequence>

Так как одна из деинсталляций не удалась, мне нужно выполнить пользовательское действие, чтобы решить проблему ДО удаления компонентов. Что-то в строках:

<CustomAction Id="FixStuff" .. />

<InstallExecuteSequence>
  <Custom Action="FixStuff" Before="RemoveExistingProducts" />
  <RemoveExistingProducts After="InstallValidate"/>
</InstallExecuteSequence>

Это, конечно, не работает, так как пользовательское действие не может быть до InstallInitialize. Я бы очень хотел удалить существующие продукты между InstallValidate и InstallInitialize, но я бы хотел выполнить FixStuff перед удалением существующих продуктов.

Возможно ли это сделать?

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

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