Проект, над которым я работаю, требует сериализации структуры данных перед выключением и восстанавливает ее состояние из этих сериализованных данных при повторном запуске.
В прошлом году мы создавали для .NET 1.1 и столкнулись с сложной проблемой, когда
- наш код работал на .NET 2.0
- клиент обновил программное обеспечение, которое каким-то образом установило 1.1 по умолчанию
- наш код работал на .NET 1.1 и не смог десериализовать свое сохраненное состояние
Эта конкретная проблема была «решена» путем запрета данного обновления программного обеспечения, и теперь она не должна быть проблемой, когда мы нацелены на платформу .NET 2.0 (поэтому мы не можем работать на версии 1.1).
Какова вероятность того, что эта сериализация может снова несовместимо измениться между 2.0 и более новыми платформами? Если мы используем <supportedVersion>
для исправления нашего кода до 2.0.50727, каковы шансы изменений между 2.0.50727.1434 и 2.0.50727.nnnn (в некоторых будущих выпусках)? Сериализуемыми структурами данных являются массивы, карты, строки и так далее из стандартных библиотек классов.
Кроме того, гарантируется ли, что инфраструктура 2.0.50727 будет всегда установлена даже после дальнейших обновлений .NET? Указатели на документацию Microsoft приветствуются.