Por lo que puedo ver mirando a mi alrededor, parece que el archivo de configuración y el diseñador proporcionan una especie de envoltorio para el archivo de configuración. El diseñador de configuraciones controla algunos valores que entran en el archivo de configuración, pero también modifica el archivo .settings
en su directorio de Propiedades y cambia el código generado en su archivo Settings.Designer.cs
.
Observe que en el archivo de configuración, los valores no tienen ningún tipo, pero en el archivo .settings
, lo hacen. Ahora abra Settings.Designer.cs
. Verá que el código generado allí toma valores de su archivo de configuración y los envía a los tipos adecuados, como se especifica en su archivo .settings
, o al diseñador de configuraciones. Por lo tanto, proporciona una interfaz segura para los valores en su archivo de configuración. Si cambia un valor en su archivo de configuración, la próxima vez que vaya al diseñador de configuraciones, le preguntará si desea actualizar .settings
para reflejar esos cambios.
Para responder a su pregunta, una vez que se implementa la aplicación, puede cambiar el valor en el archivo de configuración siempre que se pueda convertir al tipo correcto; de lo contrario, supongo que fallará en Settings.Designer.cs
. El único propósito que puedo ver parece ser seguridad de tipo y conveniencia de un diseñador sobre el manejo del XML del archivo de configuración.
También como un lado, recuerde que debido a que config no es un archivo versionado, los instaladores no los actualizarán en la máquina de un cliente. No le permitirá pisar ningún cambio de usuario. Entonces, una vez que se implementa, si coloca sus propios cambios en la configuración que los usuarios necesitarán, deberán copiar los cambios de forma manual.
Similar a http://stackoverflow.com/questions/13100498/c-sharp-app-config-vs-settings-file, que ofrece información adicional. –