application - read settings c#
¿Dónde se almacenan las propiedades. Configuración predeterminada? (5)
Pensé que sabía esto, pero hoy estoy demostrando que estoy equivocado, nuevamente.
Ejecutando VS2008, .NET 3.5 y C #. Agregué las configuraciones de Usuario a la pestaña de Configuración de Propiedades con valores predeterminados, luego las leí usando este código:
myTextBox.Text = Properties.Settings.Default.MyStringProperty;
Luego, después de que el usuario edita el valor en el diálogo de opciones, lo guardo de esta manera:
Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();
Mi pregunta es, ¿dónde se guarda este nuevo valor? el archivo MyApp.exe.config en el directorio ejecutable no se actualiza, aún contiene los valores predeterminados. Además, por lo que puedo decir, ninguno de los otros archivos en ese directorio se actualiza tampoco! Sin embargo, cuando el programa vuelve a leer el valor, obtiene el valor modificado, así que sé que está guardado en algún lugar ...
Esto no es solo académico, necesitaba poder editar el valor manualmente esta mañana y me quedé perplejo cuando no pude encontrar nada que estuviera cambiando.
Hay una carpeta llamada "Propiedades" debajo de la carpeta raíz de su proyecto, y hay un archivo * .settings debajo de esa carpeta. Ahí es donde se almacena.
Las configuraciones específicas del usuario se guardan en la carpeta de datos de aplicación del usuario para esa aplicación. Busque un archivo user.config
.
No sé lo que esperaba, ya que los usuarios a menudo ni siquiera tienen acceso de escritura al directorio ejecutable en primer lugar.
Para trabajar con las versiones más nuevas de la política de Windows de permitir solo el acceso de lectura de forma predeterminada a la carpeta Archivos de programa (a menos que solicite la elevación con UAC, pero ese es otro tema ...), su aplicación tendrá una carpeta de configuración bajo %userprofile%/appdata/local
o %userprofile%/Local Settings/Application Data
dependiendo de la versión de Windows que esté ejecutando, para configuraciones que son específicas del usuario. Si almacena configuraciones para todos los usuarios, estarán en la carpeta correspondiente en C:/users
o C:/Documents and Settings
para todos los perfiles de usuario (por ejemplo, C:/users/public/appdata/local
).
Puedes obtener el camino programáticamente:
using System.Configuration; // Add a reference to System.Configuration.dll
...
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
se guarda en sus documentos y configuraciones /% usuario% / Configuración local / Datos de aplicación ...... etc. busca un archivo llamado user.config allí
la ubicación puede cambiar sin embargo.