visual transforms studio net example disabled development deploy asp asp.net xml visual-studio web-config

asp.net - transforms - Advertencia de web.config, configSource y "El elemento ''xxx'' no está declarado"



web config transform visual studio 2017 (2)

Buscando una solución alternativa a este asunto utilizando archivos de configuración personalizados, encontré esta solución. No sé si es la correcta.

El problema es que VS no puede encontrar un esquema para validar su .config (xml). Si está utilizando elementos de configuración "nativos" o al crear sus archivos .config personalizados, debe establecer un esquema en cada documento xml.

De forma predeterminada (en VS9, por ejemplo), todos los archivos xml usan / Microsoft Visual Studio 9.0 / Xml / Schemas / DotNetConfig.xsd pero puede agregar más esquemas para usar.

Antes de asignar un esquema debes crearlo.

Para crear un nuevo esquema basado en su propio custom.config:

  1. abre tu archivo de configuración personalizado
  2. en la barra de menú XML-> Crear esquema
  3. guardalo

Para asignar su esquema:

  1. abre tu archivo de configuración personalizado
  2. en el panel de propiedades: haga clic en el botón de navegación [..]
  3. establece la columna ''Usar'' en tu esquema creado recientemente

Puedes asignar tantos como quieras. o tenga un esquema para todos sus diferentes archivos .config personalizados

(Lo siento, pero mi inglés no es tan bueno)

He desglosado el archivo web.config horriblemente difícil de manejar en archivos individuales para algunas de las secciones (por ejemplo, ConnectionStrings, autenticación, páginas, etc.) utilizando el atributo configSource.

Esto funciona bien, pero los archivos xml individuales que contienen los fragmentos de la sección causan advertencias en VS.

Por ejemplo, un archivo llamado roleManager.config se usa para la sección del administrador de roles, y se ve así:

<roleManager enabled="false"> </rolemanager>

Sin embargo, obtengo un garabato azul debajo del elemento roleManager en VS, y la siguiente advertencia: The ''roleManager'' element is not declared

Supongo que esto es algo que ver con xml y esquemas válidos, etc. ¿Existe una manera fácil de solucionar esto? ¿Algo que pueda agregar a los archivos individuales?

Gracias

PD: He oído que es una mala práctica dividir el archivo web.config de esta forma. Pero no entiendo realmente por qué, ¿alguien puede iluminarme?


Creo que obtienes los garabatos azules ya que el esquema de tu archivo web.config no declara estas secciones de configuración personalizadas que has "dividido" en archivos individuales.

Al investigar esto, veo que algunas de mis soluciones tienen el mismo problema, pero las secciones de configuración que se proporcionan desde Microsoft NO tienen los garabatos. por ejemplo: hemos extraído los conjuntos de aplicaciones y las cadenas de conexión en sus propios archivos, y no obtienen los garabatos, pero sí los nuestros.

Intenté ver el esquema de microsoft en schemas.microsoft.com/.netconfiguration/v2.0, pero obtengo un 404 al intentar descargarlo.

Lo que estoy tratando de decir es que si obtienes una copia del esquema de MS y la modificas para incluir tus archivos de configuración externos, ¡deberías poder deshacerte de los garabatos temidos!

HTH, Lance