I looked at that but it seems it only solves the case where an object is extended in future versions. In my particular case, the objects are not extended, instead there are new objects and new methods. Also as mentioned above, the problem is that I can't connect to an older server due to a version mismatch check that is performed somewhere in the proxy class.
Also note I have no control over how the server API is implemented.
Does the old version proxy not work against the new version service (for those methods that the two versions share). If so, why not? Or vice versa, for that matter. It sounds like you should be able to just use the new proxy DLL and make sure you don't call the new methods for servers that use the old API.
I get a version mismatch exception from the server if I try to use the newer version with an older server.