This explains in Visual Studio terms what happens, but it's also how
InstallShield works.
http://www.simple-talk.com/dotnet/visual-studio/build-and-deploy-a-.net-com-assembly/
Briefly, InstallShield has a Register for COM interop option at the
component level that runs regasm to create a .reg file that gets added to
the MSI file at build time (one of the options tells InstallShield where
regasm is, and it runs it with the /reg option). So the "right" registry
entries get added to the system at install time from the MSI file. That
InstallShield Register for .NET COM Interop option might be all you need to
do.

Signature
Phil Wilson
[Microsoft MVP - Windows Installer]
>I have written a .NET (c#) COM object, which works great, however it is now
>time to deploy it. If I copy the file to a target machine and run regasm on
[quoted text clipped - 8 lines]
>
> James
James - 16 Nov 2006 00:50 GMT
Hi Phil,
Thanks this is excellent info. I used tlbexp to generate a .tlb file for my
COM object, added it to my installshield project (telling it to extract COM
info). Now all runs as hoped.
Thanks again
James
> This explains in Visual Studio terms what happens, but it's also how
> InstallShield works.
[quoted text clipped - 21 lines]
>>
>> James