I have a number of dlls being built with vs2015, atl, 64 bit (each .dll component is marked as com extract at build, 64 bit component, and the project is 64 bit). Most of them extract at build just fine, but a couple that were created with the wizard (more recently than the others which are working, the working ones were created with an older version of visual studio) don't seem to extract the registration at build correctly.

Marking them as self-register via files-><filename>->properties->Self Register, or doing a regsvr32 by hand on the target works fine.

The behavior is somewhat baffling.

How does IS16 extract the com information (I sort of thought it was doing registry spying, but maybe it's trying to read the rgs directly, or something else)? Is there a way to enable debugging of this at build time?