¿De qué sirven si no se pueden modificar sus valores predeterminados de todos modos? Pregunta retórica.¿Cómo puedo evitar que las configuraciones del alcance de la aplicación sean de solo lectura?
En primer lugar, ¿cuál es la mejor manera de eludir el sistema de configuración y escribir directamente en el archivo de configuración del alcance de la aplicación (problemas de seguridad en el siguiente párrafo)? XmlReader/XmlWriter?
IIRC, si una aplicación intenta escribir en su carpeta Archivos de programa, Windows Vista y 7 hacen algo de magia para evitar eso. Supongo que tengo que llamar a UAC para elevarlo y debo poner ese elegante icono de escudo en el botón Aceptar de la ventana Opciones de mi aplicación, y así sucesivamente. Enlace a un rápido cómo hacerlo?
Como alternativa, puede decirme que lo que estoy tratando de hacer es estúpido y debería almacenar mi configuración de ámbito de aplicación alterable en otro lugar completamente.
¡Pero eso es exactamente lo que quiero! El usuario A modifica algo, y el usuario B no tiene que repetir esa modificación. – CannibalSmith
Es extraño para mí que más personas no necesiten esta característica. Seguramente, muchas aplicaciones tienen configuraciones globales para las que el programador quiere construir una interfaz de usuario amigable. –
@Ben: puede usar la clase [ConfigurationManager] (http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx) si realmente desea guardar configuraciones directamente en el global. archivo exe.configObviamente, si ese archivo está en c: \ programfiles \ su usuario necesitará los permisos de administrador apropiados. Primero abra la configuración de esta manera: var config = ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel.None); luego agregue su nueva configuración de esta manera: config.AppSettings.Settings.Add ("key", "value"); (O puede crear secciones de configuración personalizadas) No olvide llamar a guardar. –