Edit
After digging deeper, I learned that my problem is caused by an improperly truncated protobuf stream (once again). I thus reformulated this question to focus on aspects that have not already been answered in the linked questions (see "Refined question").
Background
So, I've inherited this large set of applications that use protobuf-net for just about everything (which is not a bad thing :-)). Customers have tons of serialized data lying around, so I'm bound to staying backwards compatible with the protobuf-net version these applications are currently using (at the very least, I have to be able deserialize the data they have). And here comes the catch: To this date, all parts of the application are based on protobuf-net 1.0.0.282, and I dearly want/need to upgrade. And, as you can imagine, my initial attempts at swapping in newer versions (starting with v2) failed miserably (I get various exceptions, like "Invalid field in source data: 0").
Original question
Staying away from getting into the details of the individual exceptions, is my goal of upgrading to non-primeval versions of protobuf-net while keeping backwards compatibility even feasible? If yes, what would be a good starting point? Are there any resources on how to start such an undertaking? I only found this document in the github repository, but I did not achieve much playing around with the mentioned CompatibilityLevel.
The question(s)
Note: This part of the question has already been answered in the comments - yes, the protocol is compatible Staying away from getting into the details of the individual exceptions, is my goal of upgrading to non-primeval versions of protobuf-net while keeping backwards compatibility even feasible? If yes, what would be a good starting point? Are there any resources on how to start such an undertaking? I only found this document in the github repository, but I did not achieve much playing around with the mentioned CompatibilityLevel.
Refined question
Turns out my real problem is that the original author of the coded decided to serialize the protobuf data into files that are zero-padded at the end. Don't ask me why, but there's nothing I can do about it - this data is living on customer machines. Protobuf-net 1.0.0.282 is perfectly happy with these files, and deserializes them correctly, whereas newer versions (correctly) barf on them. Now, is there anything I can do to make newer versions of protobuf accept the zero-padded files? How can I update without breaking my customers data archives?