Current project file version upgrade system is relying on loading and saving whole project structure with all entities in it.
With this strategy upgrader can easily become unstable as it can not deal with future changes.
To tolerate any past and future changes (especially incompatible one) project upgrader should operate only with xml structure.
To implement this several problems should be kept in mind:
- new loader and/or saver should be implemented which can operate directly with xml data
- old upgrade logic should be reimplemented with new design
- probably project files backups should be done prior upgrade