На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ Inno Setup
Пожалуйста, выделяйте текст инсталлятора написанного на Inno Setup тегом [сode=ins] ... [/сode]. Для этого используйте кнопку [code=ins] в форме ответа или выпадающего списка, если нужно вставить код из другой программы.


Обязательно указывать:

  • Программу, используемую для создания инсталлятора.



Если в ходе решения проблемы возникли дополнительные вопросы, по возможности задаем их в той же теме.


Выразить свое отношение к модераторам раздела можно здесь: Profi, Fester
Модераторы: Fester
  
> [WIX] Разрегистрация перед удалением
    Мне нужно перед удалением MSI вызвать разрегистрацию EXE-шников.
    Перебрал немало вариантов, вот последний из них.
    ExpandedWrap disabled
          <CustomAction Id='RegExeX86' FileKey='ExeX86.exe' ExeCommand='/regserver' Return='check' Execute='commit' Impersonate='no'/>
          <CustomAction Id='RegExe' FileKey='Exe.exe' ExeCommand='/regserver' Return='check' Execute='commit' Impersonate='no'/>
       
          <CustomAction Id='UnregExeX86' FileKey='ExeX86.exe' ExeCommand='/unregserver' Return='check'/>
          <CustomAction Id='UnregExe' FileKey='Exe.exe' ExeCommand='/unregserver' Return='check'/>
       
          <InstallExecuteSequence>
            <RemoveExistingProducts After='InstallInitialize' />
            <Custom Action='RegExeX86' After='PublishProduct'>
              <![CDATA[$ExeX86.exe>2 AND UILevel>3]]>
            </Custom>
            <Custom Action='RegExe' After='RegExeX86'>
              <![CDATA[$Exe.exe>2 AND UILevel>3]]>
            </Custom>
       
            <Custom Action='UnregExeX86' After='InstallInitialize'>
              <![CDATA[REMOVE="ALL"]]>
            </Custom>
            <Custom Action='UnregExe' After='UnregExeX86'>
              <![CDATA[REMOVE="ALL"]]>
            </Custom>
          </InstallExecuteSequence>


    В результате установка и регистрация проходит вроде нормально, а вот при удалении ошибка и откат. Подозреваю, что в момент попытки разрегистрации файлов уже нету, или что-то в таком духе. Пробовал вместо After='InstallInitialize' - Before='RemoveFiles', но результат был такой же... :wall:
    Сообщение отредактировано: wixinstaller -
      Неужели никто не в курсе?! :oops:
        UnregExeX86 и UnregExe у тебя выполняются с Immediate Mode. Подозреваю, что для дерегистрации просто не хватает прав. Добавь этим кастом экшена Execute='deferred'.
          Извиняюсь, что так долго не отвечал. Увы, не помогло, результат все тот же.
            У UnregExeX86 и UnregExe также должно быть Impersonate='no', чтобы эти кастом экшены запускались в повышенными правами.
              Большое спасибо! Кажется, это именно то что нужно!
                Спустя кучу времени багу проверили и все же это не помогло :scratch:
                Может есть еще какие-то советы? Я уже совсем запутался...
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0304 ]   [ 15 queries used ]   [ Generated: 28.03.24, 14:06 GMT ]