varunAdb
Level 4

warning -4354: com extraction at build failed

Hi all,

This question may appear to be too redundant. I have googled for the same but couldn't find the solution. Even searching this forum didn't help me.

I had some dlls which I were earlier getting registered through self-registration scheme. On moving to COM extract at build scheme, all but 1 dll fails with the above warning. I couldn't find the possible reason.

How does COM extraction scheme work. AFAIK, it runs dllregisterserver() and performs extracts required data. Will it also extract any other registry modification done in DllRegisterServer() which have nothing to do with registering COM server. In short, am not clear about the working of COM extraction scheme. What is the main reason for this warning. No appropriate info is gained with this warning message.

Thanks in advance.
Labels (1)
0 Kudos
2 Replies
varunAdb
Level 4

No response yet. But can anyone tell the working of COM extract at build. It does read DllRegisterServer() but what it reads in it? I am unable to understand it completely. If from my self-registering dl, in DllRegisterServer(), I remove a condition which was setting return value to E_ACCESSDENIED. Then the warning is gone. Why?
Your help will be appreciated.

Thanks and Regards
0 Kudos
varunAdb
Level 4

The issue was resolved. I suppose, installshield was trying to make some registry entries being made in DllRegisterServer which it couldn't and hence came out of DllRegisterServer. I moved those registry entries out of that function and placed in a seperate component. Still i cannot understand how the installshield handles the registry entries.
However, i didn't say installer worked perfectly. It's only that the warning was removed and particular dll was getting registered(to some extent). another setback came when dll registered through this method started to turn deaf to some events like buttonclicks(as they were plugins).
Reverting back to self-register method solved the problem. 😞
I came across some blogs which questions the credibility of Com extract at build. Is it actually a correct method to use against self extraction? MSDN documentation says against. :confused:
Hopefully someone will reply to this as this doesn't appear to be a specific doubt but quite general one.

Thanks
0 Kudos