Yes there is. Go into the properties for the project, and on the compile tab, select binary compatibility. What you're finding is that every time you recompile the project, you're assigning a new GUID to the class, with the result that you are breaking the reference to the class in any clients thereof.
Understand that when you select binary compatibility you must conform to COM interface rules. Those rules are:
1. Thou shalt not alter the names of any methods or properties.
2. Thou shalt not add, remove, alter the name of, or alter the type of any arguments to methods, nor shalt thou alter the type of any properties.
3. Thou shalt not alter the type of the return value of any method. (That is, you can't change a sub to a function, or alter the type of the return value of a function.)
4. Thou shalt not attempt to reorder the sequence of methods or properties in the interface.
5. Thou shalt not append methods to the interface. (While VB allows you to do this, I don't recommend it.)
There are other rules, such as supporting the iUnknown interface, but VB won't let you break them. The idea is to make sure that any code interface will retain backward compatibility with existing clients. Of course, you can reimplement a method to completely mess up the existing client, but at least the client will be able to call the messed up code properly.
HTH
Bob