You're suffering the well-known DLL hell problem. When the CCW (COM Callable Wrapper) is created (when you add a reference to the COM DLL, that's what's happening), the .NET assembly that makes it up uses the COM GUID to locate the corresponding component. If you register a new version, there will be a conflict, and the CCW will no longer be able to query inside the new COM dll, because of Vtable address mismatches and all sort of incompatibilty issues that made this problem so unfortunately usual in the "old" COM days. Unless you compile the DLL with binary compatibility enabled, and use exactly the same GUID each time (and pray for it to work in the meantime), this is unavoidable.
Dig Deeper on Win Development Resources
Related Q&A from Daniel Cazzulino
Here Daniel Cazzulino explains how to load a DSL (domain specific language) domain model instance file programmatically. This requires the .NET type ... Continue Reading
Here we offer a glimpse at 12 of .NET development expert Danny Cazzulino's top ASP.NET questions and answers. Continue Reading
C# developers should NOT be modifying InitializeComponent method in the code-behind (or any of the variable definitions) by hand. Continue Reading