Consider a C# app which has a number of user settings, some are actively used and updated and others are always read-only. Under which circumstances can such a read-only settings property end up in a per user maintained user.config?
I am seeing a funny behavior that several user configuration settings that app merely reads end up in user.config with the same unmodified default values. My app is versioned so when next version is deployed and some of the read-only settings are changed by design, they don't get picked up by the new version because ApplicationSettingsBase.Upgrade() picks local outdated values.
Basically, if the app never modifies a particular settings property, how and why does it end up in user.config?
Additionally, how can I fix the damage and erase existing read-only properties from user.config at future upgrades?