Ось моє дослідження на випадок, якщо комусь іншому важко перенести зміни, які були змінені / видалені. Основна проблема полягає в тому, що GetPreviousVersion()
це не працює, якщо ви перейменували або видалили налаштування в новій версії програми. Тому вам потрібно зберегти налаштування у своєму Settings
класі, але додати до нього кілька атрибутів / артефактів, щоб ви ненавмисно не використовували його в коді в іншому місці, роблячи його застарілим. Зразок застарілого налаштування виглядатиме так у VB.NET (його можна легко перекласти на C #):
<UserScopedSetting(),
DebuggerNonUserCode(),
DefaultSettingValue(""),
Obsolete("Do not use this property for any purpose. Use YOUR_NEW_SETTING_NAME instead."),
NoSettingsVersionUpgrade()>
Public Property OldSettingName() As String
Get
Throw New NotSupportedException("This property is obsolete")
End Get
Set
Throw New NotSupportedException("This property is obsolete")
End Set
End Property
Переконайтеся, що ви додали цю властивість у той самий простір імен / клас, який має налаштування програми. У VB.NET цей клас названий MySettings
і доступний у My
просторі імен. Ви можете використовувати функцію часткового класу, щоб запобігти змішанню застарілих налаштувань із вашими поточними налаштуваннями.
Повна заслуга jsharrison за публікацію чудової статті про цю проблему. Більш детальну інформацію про нього ви можете прочитати там.