A project I'm working on requires serializing a data structure before shutting down and restores its state from this serialized data when it start up again.
Last year, we were building for .NET 1.1, and ran into a tricky issue where
- our code ran on .NET 2.0
- a customer upgraded with some software that somehow set 1.1 as default
- our code ran on .NET 1.1 and was unable to deserialize its stored state
This particular issue was "resolved" by barring that particular software upgrade, and shouldn't be a problem now that we're targeting the .NET 2.0 framework (so we can't possibly run on 1.1).
What is the chance that this serialization could again change incompatibly between, 2.0 and newer frameworks? If we use <supportedVersion>
to fix our code to 2.0.50727, what are the chances of changes between 2.0.50727.1434 and 2.0.50727.nnnn (some future release)? The data structures being serialized are arrays, maps, strings, et cetera from the standard class libraries.
Additionally, is it guaranteed that a 2.0.50727 framework will be always installed even after further .NET upgrades? Pointers to Microsoft documentation welcome.