WiX: вызов пользовательского действия в модуле слияния, только если выбрана функция - PullRequest
1 голос
/ 18 января 2010

У меня есть WiX установщик, который имеет 3 проекта.2 Создает Merge Moduels, 1 Создает установщик.Код в модулях слияния должен выполняться только в том случае, если выбрана соответствующая функция.Есть ли шанс заставить это работать с пользовательскими действиями?

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

Код в Podoct:

<Feature Id="Complete" Title="SDK Setup" Description="Installs the sdk" Display="expand" Level="1" ConfigurableDirectory="INSTALLLOCATION">
  <Feature Id="SDK" Title ="SDK" Description="" Level ="1">

....

В модуле слияния я вызываю некоторые пользовательские действия, например:

<CustomAction Id='CustomAction' BinaryKey='CaDll' DllEntry='CaEntry' Execute='deferred' />
<CustomAction Id="CustomAction.SetProperty" Return="check" Property="CustomAction" Value='test' Execute='immediate' />

<InstallExecuteSequence>
  <Custom Action='CustomAction.SetProperty' After='CostFinalize'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) </Custom>
  <Custom Action='CustomAction' After='InstallFiles'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) </Custom>

1 Ответ

2 голосов
/ 18 января 2010

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

Но когда действия не имеют смысла таким образом (даже с помощью настраиваемой таблицы базы данных), вы всегда можете связать их с состоянием действия компонента или компонента по их состоянию. См. Синтаксис условного оператора для «Префиксы доступа» или «Значения состояния компонента и компонента», и, в частности, примеры внизу: &MyFeature=3 истинно, когда MyFeature устанавливается.

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