2012-07-27 15 views
8

¿Es posible para mí tener una sección <appSettings /> en mi app.config que contiene una serie de configuraciones, pero que también hace referencia a una sección <appSettings /> en un archivo diferente?¿Es posible que <appSettings /> contenga configuraciones Y se refiere a otra sección <appSettings /> en un archivo diferente?

Esto me permitiría mantener las opciones de configuración que solo el desarrollador debería estar interesado, p. Ej. opciones para mostrar el resultado de depuración en la ventana principal (muy desordenado pero útil para mí) o para guardar ciertos archivos en ubicaciones específicas.

En concreto, esto es lo que estoy tratando de lograr:

<!-- this is the appSettings section of the normal app.config file, 
    which also contains everything else that app.config would --> 
<appSettings configSource="AppSettings.config"> <!-- references another file --> 
    <add key="deployment_config_option1" value="1"/> 
    <add key="deployment_config_option2" value="2"/> 
</appSettings> 

<!-- this a new appSettings section of another file called DevSettings.Config 
    which only contains settings us developers are interested in 
    by keeping these settings in a different file, 
    I can ensure it's never deployed --> 
<appSettings> <!-- references another file --> 
    <add key="show_debug_on_screen" value="true"/> 
    <add key="save_copy_to_desktop" value="false"/> 
</appSettings> 
+0

es más probable que un duplicado a http://stackoverflow.com/questions/2560020/multiple-app-config-files –

+0

No es un duplicado. Esa pregunta es más general que la mía. – DaveDev

+0

Básicamente es lo mismo. Desea que su app.config incluya otras configuraciones. Si no desea implementar la segunda configuración, solo debe asegurarse de eliminar la configuración de la aplicación incluida en la aplicación app.config desplegada. –

Respuesta

10

SÍ. El doc es un tanto escaso dada la cantidad de escenarios posibles, pero según el siguiente presupuesto dice que hay una fusión en el caso de la etiqueta appSettings solamente.

Debido a los cambios en el archivo Web.config hacen que la aplicación se reinicia, utilizando un archivo separado permite a los usuarios modificar los valores que se encuentran en la sección de appSettings sin causar la aplicación para reiniciar. El contenido del archivo separado se combina con la sección appSettings en el archivo Web.config. Esta funcionalidad está limitada al atributo appSettings.

Una prueba de esto (abajo) en el caso de ASP.NET demuestra que funciona usando <add> etiquetas. Utilizar cosas más lujosas como una etiqueta <clear> en el archivo subordinado obviamente podría presentar problemas, aunque no probé ese caso extremo. No se puede hablar de tecnologías de implementación que no sean ASP; Machine.Config tampoco fue probado.

En un archivo web.config:

<appSettings file="_config\AppSettings.Config"> 
      <add key="testing-1" value="Web.Config" /> 
    </appSettings> 

En un archivo "_CONFIG \ appSettings.config":

<appSettings> 
      <add key="testing-2" value="_config/AppSettings.config" /> 
    </appSettings> 
+0

¡Perfecto! Me salvaste el día, gracias – michal

Cuestiones relacionadas