Настройка выглядит следующим образом: У меня есть пакет RTM wix (2.0), который имеет 3 пакета в цепочке. Будем говорить, что P1, P2 и P3. Независимо от того, важно ли это, P3 - это ExePackage, и именно это вызывает у меня проблемы. Кроме того, я использую bootstrapper, разработанный и поддерживаемый моей компанией, поэтому некоторые вещи, которые я могу контролировать, а некоторые я не могу.Как установить условия обнаружения и установки в цепочке исправлений пакета wix, чтобы продукт можно было удалить.
В пакете RTM P3 определяется следующим образом:
<PackageGroup Id="P3">
<ExePackage Id="p3"
Cache="yes"
Compressed="yes"
PerMachine="yes"
Permanent="no"
Vital="yes"
InstallCommand="/quiet /norestart"
SourceFile="Resources\p3.exe"
DetectCondition="P3Version"
InstallCondition="Not P3Version"
UninstallCommand="/quiet /uninstall /norestart">
</ExePackage>
</PackageGroup>
Все это работало хорошо, пока я не должен был написать исправление (патч) для пучка. В частности, для исправления P2. Первая проблема, с которой я столкнулся, заключалась в том, когда я попытался удалить исправление. Удаление исправления только в основном запускает переустановку в комплекте RTM, и поскольку P3 установлен, он заканчивается как НЕИНСТАЛИРОВАННЫЙ из-за вышеупомянутых условий.
Насколько я знаю, я ничего не могу сделать, чтобы изменить условия пакета, поскольку он уже отправлен. Если кто-то знает, что нужно заплатить пакет, это было бы здорово.
вещей я попытался:
Запуска переустановки P3 от настраиваемого действия только планируется запустить на MSIPATCHREMOVE. Это, похоже, не работает, потому что, по-видимому, несколько MSI не могут выполняться одновременно.
Я добавил P3 к моей цепочке связок исправлений. Это устраняет проблему при удалении исправления только потому, что пакет исправлений теперь отключает P3, а затем переустановка RTM видит, что P3 не существует ... и устанавливает его снова. Но это вводит новую проблему. Я должен иметь возможность удалять весь продукт за один раз из меню ARP. Выполнение деинсталляции через меню удаления RTM должно также удалить все связанные пакеты. Когда это происходит, кажется, что оба пакета пытаются удалить P3. Кажется, что пакет исправлений выигрывает и удаляет exe из кеша пакета. Это приводит к ошибке в пакете RTM и не удается удалить.
Любые советы приветствуются.