c++ - Problems with de-registering of COM (advanced installer) -
definition of problem:
hangs sometime during com de-registering , says the setup unable automatically close requested applications. please ensure applications holding files in use closed before continuing installation
. extension unloaded , uninstalled.
definition of environment:
i created kind of dummy shell namespace extension tests. implements icontextmenu
, methods returns_ok
, nothing else , rgs file is
hkcr { xxx.sergz.dummyshellext.1 = s 'dummynse class' { clsid = s '{6c0fbe00-9898-4bb0-806f-3ed7d2f1170d}' } xxx.sergz.dummyshellext = s 'dummynse class' { curver = s 'xxx.sergz.dummyshellext.1' } noremove clsid { forceremove {6c0fbe00-9898-4bb0-806f-3ed7d2f1170d} = s 'dummynse class' { progid = s 'xxx.sergz.dummyshellext.1' versionindependentprogid = s 'xxx.sergz.dummyshellext' forceremove programmable inprocserver32 = s '%module%' { val threadingmodel = s 'apartment' } typelib = s '{3dc947f0-6691-4043-b414-29f749209905}' version = s '1.0' } } noremove directory { noremove background { noremove shellex { noremove contextmenuhandlers { forceremove dummyshellext = s '{6c0fbe00-9898-4bb0-806f-3ed7d2f1170d}' } } } } } hklm { noremove software { noremove microsoft { noremove windows { noremove currentversion { noremove shell extensions { noremove approved { val '{6c0fbe00-9898-4bb0-806f-3ed7d2f1170d}' = s 'xxx.sergz dummy shell extension.' } } } } } } }
i choose professional
installer , added dll file. on file properties registration
tab choose auto register file...
, extract registration info...
, synchronization
enabled
. in product information->install parameters->packagetype
choose 64-bit package x64...
.
now build msi , install extension. launch explorer , right click somewhere on folder background. according log extension loaded , dll_process_attach , few times dll_thread_attach.
i launch msi again , choose remove
. says have close ... applications using files...
, there windows explorer
in list. choose automatically close ...
, press ok.
all explorer windows closed seems explorer not shutdown.
the status "shutting down applications", according log dll unloaded. problem here. dll unloaded msi still waiting , says the setup unable automatically close requested applications. please ensure applications holding files in use closed before continuing installation
. click ok , process continues , dll removed in end.
i use windows 8 64bit.
what reasons of waiting , message applications can not closed. how can figure out?
right, isn't going work, shell extension loaded , msi isn't going kill explorer.exe. nor want to, rather ghastly sight user.
you'll need use alternative way un/register extension. isn't clear "professional installer" might mean. can un/register com server modifying registry rather leaving dll so. in fact recommended way. know registry keys .rgs file. can use heat.exe harvester wix toolset. dll needs removed delay-deleting @ next user login, done adding pendingfilerenameoperations registry key. check installer creator tool proper procedure.
Comments
Post a Comment