I wrote an OCX to communicate with an USB device in VB6. I then wrote a Visual Studio 2005 .net application that used the OCX. Then I made a small change to the OCX, with binary compatibility on. The new OCX works fine with VB6 programs compiled with the older OCX, but not with .net programs compiled with the older OCX. I suspect the problem is with the wrapper DLLs that .net creates for using activex components. I have upgraded OCXs before and never run into this problem, although a customer recently reported a problem like this, but we were not able to recreate his problem until now. I believe that rebuilding the .net program with the new OCX would resolve the problem, but it is not piratical to rebuild all of our .net programs every time we upgrade an OCX.
Has anyone else run into this problem, and did you find a solution?