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


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

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



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


Выразить свое отношение к модераторам раздела можно здесь: Profi, Fester
Модераторы: Fester, Profi
  
> [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', чтобы эти кастом экшены запускались в повышенными правами.
            - Завтра или послезавтра придет фруктовый пароход из Мобила, - сказал Джонни. - А до той поры нам делать нечего.
            - Но что вы намерены делать? Создать спрос?
            - Много вы понимаете в политической экономии, - ответил консул довольно невежливо. - Спроса создать нельзя. Но можно создать условия, которые вызовут спрос.
              Большое спасибо! Кажется, это именно то что нужно!
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script Execution time: 0,0729 ]   [ 14 queries used ]   [ Generated: 22.10.18, 12:17 GMT ]