I'm creating an installer for a project that I've created. My project is a
Managed C++ 2005 project, and it compiles out to a COM Dll. I need to
register this COM Dll in order for the final product to function properly.
Initially I tried registering the Project Output, but I understand that there
are issues with doing that, so I have excluded the Primary Output for my
project, and I have added the dll from my Release folder directly. In the
properties for my Dll I have set the Register property to
vsdraCOMReleativePath, but I have also tried vsdraCOM, in both cases the dll
does not register on the target machine. If I run regsvr32 on the target
machine my dll will register and the application will work. Does anyone have
any suggestions on how to get this work correctly. I appreciate any help.
I should also probably point out that I did not remove the Primary Output,
because I like how the MSI project will automatically determine the
dependencies if the Primary Output is with the MSI. I only excluded the
Primary Output.
Phil Wilson - 03 Oct 2007 18:29 GMT
You don't want COM relative path because that's for a little-used
side-by-side implementation, so use vsdraCOM.
What happens with these settings is that Visual Studio captures the
registration information at build time and puts them in the MSI file so that
the Dll doesn't need to be called at install time. The question then is how
much (if any) registration data is being captured at build time. Internally
I believe the build calls RegCap.exe to create a .reg file, and then this
.reg file gets imported into the setup project with a few changes. If you
feel like installing Orca (an MSI file editor/viewer from the Windows SDK)
you could look at the MSI file to see what's in the Registry, Class and
Typelib tables - that's where the registration would be.
Something to keep in mind is that MSI installs use the per-machine/per-user
settings, so if you so a Just me install the registration will be in HKCU,
not HKLM.

Signature
Phil Wilson
[MVP Windows Installer]
> I'm creating an installer for a project that I've created. My project is
> a
[quoted text clipped - 16 lines]
> dependencies if the Primary Output is with the MSI. I only excluded the
> Primary Output.