See the question and my original answer on StackOverflow

There's not "magic" with COM, you must register the VB6 COM component (dll, ocx, etc.).

The interop .NET dll is not a COM component, it just contains metadata/binding from .NET to COM, so it doesn't need to be registered.

PS: in fact, you don't have to register, you just need to give clients a way to find you, so there's also the possibility to use Registration-Free Activation of COM Components: A Walkthrough, but it can be more work than simply register a bunch of dlls.