WIX Custom Action - запускать в разное время для установки, обновления и удаления - PullRequest
0 голосов
/ 23 августа 2010

У меня есть настраиваемое действие, которое удаляет различные каталоги как часть процесса удаления.Я хочу вызвать это действие в разных точках последовательности установки в зависимости от того, что делается:

  • Во время установки не запускайте настраиваемое действие
  • Во время обновления запуститенастраиваемое действие после RemoveExistingProducts
  • Во время удаления запустите настраиваемое действие после RemoveFolders

Скорее всего, каждый из них будет работать по отдельности, но как мне заставить их работатьвместе, как я хочу.Я пробовал что-то вроде этого (некоторый код взят из здесь ):

<InstallExecuteSequence>

  <Custom Action="PreventDowngrading" After="FindRelatedProducts">
    NEWERPRODUCTFOUND AND NOT Installed
  </Custom>

  <LaunchConditions After="AppSearch" />
  <RemoveExistingProducts Before="InstallInitialize" />

  <!-- NEW _> Clean old files AFTER uninstall during an upgrade -->
  <Custom Action="CleanUp"  After="RemoveExistingProducts" >
    UPGRADINGPRODUCTCODE
  </Custom>

  <!-- NEW _> Clean old files LAST during an uninstall -->
  <Custom Action="CleanUp"  After="RemoveFolders" >
    (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
  </Custom>

</InstallExecuteSequence>

Но получаю ошибку дублирующегося символа, когда я делаю сборку.Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

1 голос
/ 27 января 2012

Вы также можете использовать RemoveFiles, чтобы избавиться от посторонних файлов в каталоге.

0 голосов
/ 23 августа 2010

Пользовательское действие может быть в последовательности только один раз.У меня есть некоторые большие проблемы: какой тип обновления вы делаете?Крупное обновление приводит к удалению предыдущего продукта, поэтому ваш ЦС может работать в два раза лучше, чем вы его описываете.Можно ли использовать элемент WiX RemoveFolder (таблица MSI RemoveFile).Это будет намного проще и надежнее реализовать.Если вы должны использовать настраиваемое действие, я бы использовал состояния действия компонента, чтобы определить, когда он должен выполняться, а не более общие свойства, как показано выше.

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