We need to adapt our application to be usable through ClickOnce. The application consists of a .exe file, and a huge set of Visual C++ libraries, some of them are in-proc COM servers used by other libraries.
Currently our installer does regsvr32
to register the COM servers, but looks like ClickOnce applications are not allowed to modify the registry during installation. So we need something else.
Option one is to remove CoCreateInstance()
and instead use LoadLibraryEx()
/DllGetClassObject()
. This will require code modification, but is very reliable - I don't see any reason why this wouldn't work.
Option two is to use side-by-side COM activation with manifests. The problem I see immediately is that we increment the version number in each nightly build, so we will have to update manifests automatically. That's not very inspiring. What are other not so obvious limitations of using side-by-side COM activation?