Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Инсталляторы > [WIX] Разрегистрация перед удалением


Автор: wixinstaller 08.05.18, 13:41
Мне нужно перед удалением MSI вызвать разрегистрацию EXE-шников.
Перебрал немало вариантов, вот последний из них.
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
        <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 14.05.18, 11:14
Неужели никто не в курсе?! :oops:

Автор: Fester 14.05.18, 15:39
UnregExeX86 и UnregExe у тебя выполняются с Immediate Mode. Подозреваю, что для дерегистрации просто не хватает прав. Добавь этим кастом экшена Execute='deferred'.

Автор: wixinstaller 11.06.18, 16:07
Извиняюсь, что так долго не отвечал. Увы, не помогло, результат все тот же.

Автор: Fester 12.06.18, 07:41
У UnregExeX86 и UnregExe также должно быть Impersonate='no', чтобы эти кастом экшены запускались в повышенными правами.

Автор: wixinstaller 02.07.18, 17:28
Большое спасибо! Кажется, это именно то что нужно!

Автор: wixinstaller 22.10.18, 12:24
Спустя кучу времени багу проверили и все же это не помогло :scratch:
Может есть еще какие-то советы? Я уже совсем запутался...

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)