2012-08-10 35 views
6

he definido mi configSource para buscar archivos de configuración en un sub-directorio llamado config, de la siguiente manera:¿Por qué Web.config busca configSource en la carpeta del proyecto en lugar de bin?

<connectionStrings configSource="config\ConnectionStrings.config" /> 

tengo el archivo de configuración se define como un archivo vinculado, por lo que cuando la acumulación ocurre, se copia en mi carpeta bin \ config está bien.

Sin embargo, mis proyectos de aplicaciones web están buscando en la carpeta config proyecto desarrollo en lugar de la bin carpeta \ config despliegue. Confirmé esto con Process Monitor.

así que tengo varias preguntas:

  1. ¿Por qué está buscando allí en vez de bin \ config - me he perdido en algún lugar un ajuste de ruta relativa?
  2. Los archivos vinculados no se copian allí sino solo en el contenedor. Mi entendimiento es que este es el comportamiento apropiado. ¿Es eso una suposición correcta o debería copiarse en ambas ubicaciones? Si es así, ¿cuál es la configuración para habilitar eso?
  3. ¿Es una buena práctica usar una subcarpeta para archivos vinculados o debería dejarlos en la raíz del proyecto?

¡Muchas gracias!

ACTUALIZACIÓN: estoy usando el método descrito aquí: http://consultingblogs.emc.com/jamesdawson/archive/2008/06/03/using-linked-files-with-web-application-projects.aspx para asegurarse de que los archivos de configuración se copian, y haciendo un poco de experimentación he respondido a la pregunta # 2. No, no es un comportamiento predeterminado en Visual Studio, pero esta solución garantiza que los archivos se copien en ambas ubicaciones.

Respuesta

1

Creo que esto puede ayudarlo un poco. How to use multiple Web.config files

Básicamente puede tener tantos archivos de configuración como desee, siempre y cuando estén en una carpeta separada de su aplicación web. Estoy un poco confundido por parte de tu comentario en el que mencionas "proyecto web diferente", ¿podrías ser un poco más específico en ese departamento? Además, he encontrado muchos más detalles acerca de esto en msdn, le sugiero que lo revise.

Happy coding!

+0

Bueno, no creo que use la frase "proyecto web diferente" pero tengo varios proyectos de destino (3 proyectos web y una aplicación de consola) que usan el archivo vinculado ConnectionStrings.config. La pregunta no es cuántos archivos de configuración. Lo que no me gusta es que los proyectos web miran en mi ruta de desarrollo versus la ruta de implementación para los archivos de configuración. La aplicación de consola no lo está haciendo. Mi expectativa es que web.config buscará los archivos vinculados en la ruta de implementación una vez compilado, al igual que el app.config de mi aplicación de consola. Perdón por la falta de claridad! – Shane

+0

Hola de nuevo, bueno, si entendí tu pregunta correctamente, el único problema aquí es que web.config no está leyendo el archivo vinculado desde la ubicación esperada. Por lo que pude descubrir, parece que se debe especificar la ubicación exacta del archivo, para que web.config pueda leerlo. Aquí está mi [enlace] (fuente de información: http://stackoverflow.com/questions/2411184/can-a-web-config-read-from-an-external-xml-file) –

+0

Hola de nuevo, bueno si Entendido correctamente su pregunta, el único problema aquí es que web.config no está leyendo el archivo vinculado desde la ubicación esperada. Por lo que pude descubrir, parece que se debe especificar la ubicación exacta del archivo para que funcione la web.config para leerlo. Aquí está mi [fuente de información] [1] [1]: http: //stackoverflow.com/questions/2411184/can-a-web-config-read-from-an-external-xml-file En mis proyectos I realmente utilizo este enfoque, espero que esto pueda resolver su problema. –

Cuestiones relacionadas