in our clickonce application we have the problem that an update may change the object model. if a user works offline and has data checkedout into their cache, the update may contain a different object model which is incompatible with their cached data.
so data must be checked in before the update is allowed. does that sound like a reasonable solution to this problem, and how many have encountered it?

more problematic, changes to database structure and webservice code. the only real solution to this we can see is to leave a few versioned services running that transform data from older applications to the new database before the user updates their application.

are there any existing solutions/models for dealing with these issues? seems like a massive part of clickonce deployment and i'd really like to see how others have tackled these. thanks.