Nothing is different than the way I registered it in your previous question. You are still using <bindingRedirect> to allow the loading of the wrong version of the interop assembly.
It is quite unlikely to work in practice, messing with the Hell DLL when you use COM is extremely unreasonable. If you use early binding, COM cannot verify that you are calling the correct method. Unlike .NET, where jitter can perform such checks at runtime from metadata in the assembly. If the C ++ programmer did it right, he changed the list of types that he changed. Which will make your code bomb with E_NOINTERFACE, since you will use the pointer of the old version.
If it did not, unfortunately, is too common, then your program may encounter something unpleasant, like AccessViolationException. Or, even worse, it will not work, but it will call a completely wrong method.
Failure mode is milder, if you use late binding, you will receive one of the IDispatch errors when the method does not exist or its arguments have changed. Not that it ultimately solves anything, you still have a program that doesn't work. A mess with a Hell dll like this is only if you like living dangerously.
source share