2010-03-29 21 views
26

Duplicar posible:
What is the difference between app.config file and XYZ.settings file?archivo app.config configuración vs

No estoy realmente comprender la interacción/diferencias entre las configuraciones y los archivos de configuración. Si agrego una entrada al archivo de configuración, también se agrega a la app.config. ¿Esto significa que al cambiar el valor en el app.config se actualizará la configuración? Si no, ¿cómo actualizo la configuración en una aplicación en vivo? ¿Cuál es el propósito general de usar un archivo de configuración en lugar de poner cosas directamente en app.config?

+0

Similar a http://stackoverflow.com/questions/13100498/c-sharp-app-config-vs-settings-file, que ofrece información adicional. –

Respuesta

16

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.

+0

Creo que hay otro propósito porque Settings.Designer.cs se compila en la aplicación para que pueda acceder a la configuración incluso si se elimina app.config. –

Cuestiones relacionadas