Отключить StartIIS7Configuration transaciton при деинсталляции установщика Wix - PullRequest
1 голос
/ 11 октября 2011

У меня проблема с установщиком Wix, который охватывает три различных набора функций (клиент / разработчик и сервер).

При выборе клиента установщику не требуется выполнять какие-либо действия с IIS, определенные в компонентах, которые не включены в эту функцию.

При установке у меня не возникает проблем, так как я добавил пользовательское действие

<!-- Only perform the IIS Configuration if we have installed the Admin Application-->
<Custom Action="SkipIISCA" Before="InstallValidate">
  <![CDATA[COMPONENT_TYPE = 2]]>
</Custom>

Который запускается только при установке типа компонента «Клиент». Настраиваемое действие устанавливает для свойства SKIPCONFIGUREIIS значение 1

.

Проблема возникает, когда в программе установки выполняется восстановление при удалении. Похоже, что конфигурация IIS предпринимается при удалении или ремонте продукта, и пользовательское действие не запускается, чтобы отключить это поведение.

Есть ли хороший способ установить параметр SKIPCONFIGUREIIS для удаления / восстановления на основе параметра реестра?

Спасибо.

1 Ответ

0 голосов
/ 18 октября 2011

Некоторые свойства, установленные во время установки, хранятся в скрытом каталоге Windows, c: \ windows \ installer - по одному на установку.В журнале сеанса удаления / восстановления вы можете видеть, что кэшированный файл открыт и свойства устанавливаются для нового сеанса удаления / восстановления.(В качестве альтернативы вы можете найти этот временный файл в журнале удаления / восстановления и открыть его с помощью Orca. В Orca в разделе «Свойства» будут показаны значения всех сохраненных свойств установки).

На основеВ приведенном выше описании я готов поспорить, что свойство, для которого настраивается настраиваемое действие, не сохраняется, а доступно значение COMPONENT_TYPE (тот же ввод, который использовался для установки SKIPCONFIGUREIIS в настраиваемом действии).

Если это так, то просто настройте действие конфигурации IIS на основе этих свойств:

<Custom Action="Your_Configure_IIS_Action" Before="InstallFinalize">
(NOT SKIPCONFIGUREIIS ) OR (COMPONENT_TYPE = 2)</Custom>

Если вы не хотите, чтобы ConfigureIIS выполнялся для любого набора функций во время удаления / восстановления, просто используйте эти свойства:

<Custom Action="Your_Configure_IIS_Action" Before="InstallFinalize">
(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom>

Еще одна вещь, о которой стоит подумать, это если первоначальный установщик был на одном уровне - например, клиент, и удаление / восстановление выполняется кем-то на уровне сервера.Component_type исходной установки сохраняется.В этом случае вы можете подумать о добавлении проверки того, как определяется тип_компонента (через диалоговое окно или другой атрибут) во время удаления / восстановления.

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