Al depurar mi proyecto en Visual Studio 2008, mi archivo Settings.settings sigue restableciéndose entre las compilaciones. ¿Hay alguna manera de evitar que esto suceda?Settings.settings El archivo sigue recibiendo el restablecimiento
Gracias.
Al depurar mi proyecto en Visual Studio 2008, mi archivo Settings.settings sigue restableciéndose entre las compilaciones. ¿Hay alguna manera de evitar que esto suceda?Settings.settings El archivo sigue recibiendo el restablecimiento
Gracias.
Bien, descubrí la respuesta que realmente estaba buscando. Básicamente, debe llamar a LocalFileSettingsProvider.Upgrade. Sin embargo, como voy a implementar usando ClickOnce, lo hará automáticamente.
P: Bien, pero ¿cómo sé cuándo puedo llamar para actualizar?
A: Buena pregunta. En Clickonce, cuando instala una nueva versión de su aplicación, ApplicationSettingsBase la detectará y actualizará automáticamente la configuración en el momento en que se cargue la configuración. En los casos que no sean de Clickonce, no hay una actualización automática: debe realizar una actualización usted mismo. Aquí hay una idea para determinar cuándo llamar a Upgrade:
Tiene una configuración booleana llamada CallUpgrade y le da un valor predeterminado de verdadero. Cuando su aplicación se pone en marcha, se puede hacer algo como:
if (Properties.Settings.Value.CallUpgrade)
{
Properties.Settings.Value.Upgrade();
Properties.Settings.Value.CallUpgrade = false;
}
Esto asegurará que la modernización() se llama sólo la primera vez que la aplicación se ejecuta después de una nueva versión se despliega.
Creo que puede establecer en las propiedades del archivo (en Visual Studio, haga clic derecho, Propiedades) una opción para "no copiar" cuando se construye/ejecuta el proyecto. Lo que está sucediendo probablemente sea cuando se construya su proyecto, el archivo de configuración se copie en el directorio bin de depuración, sobrescribiendo el archivo de configuración de la ejecución anterior.
Creo que los archivos Settings.settings se guardan según el número de versión actual, básicamente como una "característica" donde los ajustes no se guardan entre las diferentes versiones del mismo programa en una máquina. Suponiendo que está incrementando el número de versión automáticamente al compilar (1.0. * En AssemblyInfo.cs), restablecerá su configuración cada vez que compile una nueva versión.
Para corregir esto, lo mejor sería serializar su propio archivo de configuración en el directorio de datos de la aplicación.
No estoy seguro de cómo se podría considerar una característica de Microsoft. ¿Te imaginas todas las quejas que habría cada vez que Microsoft actualizara su software? ¿Por qué pensarían que sería diferente para los "nosotros" desarrolladores? :) ¡Gracias por su respuesta! – Lenard
No es un problema si actualiza sus números de versión manualmente. El resultado final es que el usuario puede instalar las versiones 1.0, 1.5, 1.7 y 2.0 de su software, y cada uno de ellos guardará su propia configuración única. Para la configuración compartida entre estas 4 aplicaciones, debe guardar su propio archivo de configuración en una ubicación compartida. –
Nunca me ha gustado el comportamiento de ninguna de las funciones de configuración de la aplicación proporcionadas por MS. Está avergonzado porque parece que hay mucho marco allí, pero me resulta más fácil cocinar solo. – AaronLS
Entre otras razones, el archivo de configuración se reinicia de manera cada vez que depurar, simplemente porque la próxima vez que Depuración, podrás poner a prueba toda la aplicación de nuevo. No restablecer la configuración puede provocar errores no detectados.
Acabo de marcar esa opción y ya está configurado para "no copiar". – Lenard