Aquí está mi investigación en caso de que alguien más esté teniendo dificultades para migrar configuraciones que se han cambiado / eliminado. El problema básico es que GetPreviousVersion()
no funciona si ha cambiado el nombre o eliminado la configuración en la nueva versión de su aplicación. Por lo tanto, debe mantener la configuración en su Settings
clase, pero agregarle algunos atributos / artefactos para que no la use inadvertidamente en el código en otro lugar, haciéndolo obsoleto. Una configuración obsoleta de muestra se vería así en VB.NET (se puede traducir fácilmente a 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
Asegúrese de agregar esta propiedad al mismo espacio de nombres / clase que tiene la configuración de su aplicación. En VB.NET, esta clase se nombra MySettings
y está disponible en el My
espacio de nombres. Puede usar la funcionalidad de clase parcial para evitar que sus configuraciones obsoletas se mezclen con sus configuraciones actuales.
Todo el crédito a jsharrison por publicar un excelente artículo sobre este tema. Puede leer más detalles al respecto allí.