2011-04-26 11 views
16

¿Hay alguna manera de tener un archivo común de propiedades para todos los proyectos de la solución?común Settings.settings file para la solución completa

Tengo una aplicación de consola y un montón de otros archivos de biblioteca de clase y quiero tener solo un archivo de configuración para ellos.

No estoy hablando de archivo app.Config. Estoy hablando del archivo Settings.settings.

¿Alguna idea de cómo puedo hacerlo?

También es una buena práctica para almacenar la configuración de configuración en el archivo de configuración en lugar de app.config?

+0

Creo que eso arruinaría toda la idea de la solución/proyecto. Puede crear múltiples proyectos para una solución para reproducir fácilmente partes de su código en otras soluciones. Los proyectos no son una forma de organizar una solución; para eso, sería mejor tener carpetas dentro de un proyecto. – hyp

+0

El contenido del archivo settings.settings genera el contenido del archivo app.config que es único para cada solución. A menos que tenga una configuración de aplicación (no de usuario) para sus archivos de biblioteca de clase, su diseño mostrará muy rápidamente algunos defectos de diseño. Le sugiero que evite el archivo de configuración si está tratando con múltiples soluciones que generan un solo proyecto. –

+0

¿He dicho que tengo múltiples soluciones que generan un solo proyecto? Todo lo que quiero hacer es tener archivos comunes de ajustes en todo el proyecto. Al igual que tenemos web.config o app.config. – Asdfg

Respuesta

21

Coloque el archivo que desea compartir entre proyectos en una carpeta de soluciones. Luego, en cada proyecto, elija Agregar elemento existente.

En el cuadro de diálogo Agregar elemento existente, elija el archivo común. En lugar de hacer clic en el botón Agregar, haga clic en la flecha desplegable en el lado derecho del botón Agregar y elija Agregar como vínculo en el menú desplegable.

Add As Link

Si se trata de un archivo de configuración, es necesario establecer la propiedad Herramienta personalizada para el archivo:

file properties

Si el archivo es Settings.settings puede abrir las propiedades del proyecto y vaya a la pestaña Configuración y Visual Studio configurará esta propiedad de Herramienta personalizada automáticamente.

Una vez que se establece la herramienta personalizada, verá un archivo Designer.cs creado debajo de su archivo de configuración. Este archivo Designer.cs contiene código generado para que su configuración esté accesible programáticamente.

Designer sub-file

Como se puede ver, el archivo Designer.cs es también un archivo vinculado, y su ubicación física será el mismo que el archivo de configuración.

+2

pero si trato de acceder a ellos como Properties.Settings.Default.SettingName en la biblioteca de clases, no lo reconoce. – Asdfg

+0

ver mi edición .... –

+0

Si esto resuelve su problema (debería) votando y aceptando mi respuesta sería apreciada, gracias. –

8

Como alternativa, puede establecer la configuración en public en lugar de internal.

Ir a YourProject-> Propiedades-> Ajustes

enter image description here

1

La respuesta aceptada por encima @qes es correcta, pero no tenía una situación en la que especifica el CustomToolNamespace vino muy bien como yo ya tenía algún proyecto ajustes específicos. Al configurar el Espacio de nombre para algo específico, no obtuve el espacio de nombre autogenerado relativo a cada proyecto en la solución.

Cuestiones relacionadas