El elemento de configuración no está declarado

85

Estoy trabajando en Visual Studio 2012 Express Edition. He agregado un archivo XML App.config de la siguiente manera:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>

Lo primero que sucede es que aparece una advertencia que dice "El elemento 'configuración' no está declarado". ¿Alguien sabe por qué pasa esto? Parece que los elementos no se pueden declarar dentro de hasta que esto se resuelva.

¡Gracias!

Este es el XML completo:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="Version" value="779" />
<add key="TimeOut" value="60000" />
<add key="LogFileName" value="Log.txt" />
<!-- your Developer Id with eBay -->
<add key="Environment.DevId" value="" />
<!-- your Application Id with eBay -->
<add key="Environment.AppId" value="" />
<!-- your Application Certificate with eBay -->
<add key="Environment.CertId" value="" />
<!-- API Server URL -->
<!-- For production site use: https://api.ebay.com/wsapi -->
<!-- For Sandbox use: https://api.sandbox.ebay.com/wsapi -->
<add key="Environment.ApiServerUrl" value="https://api.sandbox.ebay.com/wsapi" />
<!-- EPS Server URL -->
<!-- For production site use: https://api.ebay.com/ws/api.dll"/-->
<add key="Environment.EpsServerUrl" value="https://api.sandbox.ebay.com/ws/api.dll" />
<!-- eBay Signin URL -->
<!-- For production site use: https://signin.ebay.com/ws/eBayISAPI.dll?SignIn -->
<!-- https://signin.sandbox.ebay.com/ws/eBayISAPI.dll?SignIn -->
<add key="Environment.SignInUrl" value="https://signin.sandbox.ebay.com/ws/eBayISAPI.dll?SignIn" />
<!-- ViewItem URL -->
<!-- For production site use: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;item={0} -->
<add key="Environment.ViewItemUrl" value="http://cgi.sandbox.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;item={0}" />
<!-- token is for both API server and EPS server -->
<add key="UserAccount.ApiToken" value="" />
<!-- eBay site ID -->
<add key="UserAccount.eBayUserSiteId" value="0" />
<add key="logexception" value="true"/>
<add key="logmessages" value="true"/>
<add key="logsdkmessages" value="true"/>
<add key="logsdk" value="true"/>
<add key="logfile" value="Log.txt"/>
<!-- Rule Name-->
<add key="RuName" value=""/>
<!-- Set this if you access eBay API server behind a proxy server-->
<add key="Proxy.Host" value =""/>
<add key="Proxy.Port" value =""/>
<!-- set proxy server username/password if necessary-->
<add key="Proxy.Username" value=""/>
<add key="Proxy.Password" value=""/>

Eae
fuente
4
Es posible que deba echar un vistazo a cómo se ve el archivo DotNetConfig.xsd. se puede encontrar en algún lugar como C: \ Archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ Xml \ Schemas
Adriaan Stander
¿Cuál es el error exacto, qué da esta advertencia? con un marco de pila completa por favor?
Simon Mourier
Funciona en mi edición VS2012 Express.
Martin Mulder
1
Es una cuestión de inteligencia. Con una nueva aplicación de consola, abra App.config, y el elemento <configuration> está subrayado en azul con el error "El elemento 'configuración' no está declarado", sin embargo, aún puede agregar una sección <appsettings> con su settings en él y hacer referencia a ellos con la clase ConfigurationManager, pero al agregar los elementos appsettings y <add key ..., intellisense no aparece. Un problema puramente intelectual sobre el que quería más información, de ahí la recompensa.
seekerOfKnowledge
1
respuesta incorrecta elegida.
JJS

Respuestas:

22

Tuve el mismo problema. No es un error, es simplemente una advertencia; por lo que su aplicación aún debería compilarse. Usé el siguiente archivo de configuración simple y la advertencia todavía se produce.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime 
             version="v4.0"sku=".NETFramework,
             Version=v4.5"/>
    </startup>
</configuration>

Es un problema que se ha planteado en el sitio web de MSDN, pero no parece que se haya resuelto satisfactoriamente. Ver enlace a continuación:

http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvcs/thread/18a1074f-668f-4fe3-a8d9-4440db797439

Stephen Scully
fuente
340

Vaya al menú XML (elemento del menú superior de Visual Studio), elija esquemas, busque DotNetConfig.xsd y elija Usar este esquema .

XML: esquemas

Editar esquema XML

Tu problema se resolverá seguro

Ramakrishna
fuente
6
Esta debería ser la respuesta. En cuanto a la fecha en que se publicó esta respuesta (agosto de 2015), no estoy muy seguro de si esta respuesta existía en el momento de la pregunta (septiembre de 2012). (¿Lo hizo?)
Ian
1
Esto solo no funcionó para mí. Considere esto: stackoverflow.com/questions/4355278/…
Matt
2
Esta respuesta resolvió el problema en Visual Studio 2017. De todos modos, no entiendo por qué DotNetConfig.xsd no se usa de forma predeterminada cuando se crea un archivo .config.
Gael
¡Ramakrishna , hombre! Funcionó perfectamente. La aplicación aún se compila, pero el molesto mensaje de advertencia ya no existe.
puffgroovy
Esto funciona, más información sobre esto que noté en mi solución es para .net versión 4.5, el esquema DotNetConfig.xsd está seleccionado de forma predeterminada, pero para .net versión 4.6 DotNetConfig.xsd debe seleccionarse como @Ramakrishna sugirió en esta respuesta. ¡Gracias!
ZeeProgrammer
33
<configuration xmlns="schema URL">
   <!-- configuration settings -->
</configuration>

hacer cambios, como arriba y probar

Ravindra Bagale
fuente
1
La advertencia se ha ido. Gracias por su amabilidad. Debo marcar esto como la respuesta.
Eae
Parece que ahora los elementos dentro de la configuración no son leídos por el entorno que es Visual Studio 2012 Express Edition.
Eae
@sepoto: si eliminas el espacio de nombres xmlns, vuelve a
darte una
1
Incluí App.config en su totalidad en mi publicación. Por alguna razón, no he podido hacer que funcione correctamente con el entorno Visual Studio 2012 Express C #. Probé su solución anterior, sin embargo, luego recibí advertencias para los elementos dentro de la configuración, por lo que las cosas se volvieron discutibles. Agradezco enormemente su ayuda, pero no creo que haya una respuesta todavía.
Eae
1
Esta respuesta es parcialmente correcta: al especificar un xmlns (el valor puede ser cualquier cosa), la advertencia de configurationdesaparece, pero se emite un mensaje de información para configurationy para cada subelemento. Si el xmlns apunta a un DTD real que define todos los elementos, esos mensajes también deberían desaparecer.
Mike C
6

Tuve que -> Ir al menú XML (elemento del menú superior de Visual Studio) elegir esquemas y seleccionar DotNetConfig.xsd Y RazorCustomSchema.xsd Y EntityFrameworkConfig_6_1_0.xsd

usuario847335
fuente
1

Acabo de tener esta ventana emergente de advertencia dentro de un archivo xml generado automáticamente mientras trabajaba en un proyecto xaml.

El uso de Debug-> Clean Solution y Debug-> Rebuild Solution lo solucionó. Quizás quiera probar eso antes de volverse elegante con los esquemas.

Ashbygeek
fuente
0

Visual Studio 2013 Express Edition no tiene DotNetConfig.xsd ( https://connect.microsoft.com/VisualStudio/feedback/details/817322/dotnetconfig-xsd-files-not-present-in-vs-2013-express-for- escritorio ).

Entonces, para deshacerse de la advertencia en VS 2013 Express:

La advertencia debería desaparecer.

appyCrabby
fuente
0

Elija usar este esquema. DotNetConfig.xsd

Menú XLM ..... Visual Studio

Funciona perfectamente.

Felipe R Valera
fuente
Incluya una explicación de cómo su código corrige el error en lugar de solo un montón de código - stackoverflow.com/help/how-to-answer
Dov Benyomin Sohacheski
0

Tenía menos espacio en mi disco, lo que podría haber resultado en una carga incompleta de la solución de mi aplicación. Este problema de "el elemento de configuración no está declarado" se resolvió después de que creé algo de espacio en mi disco.

Vallabh
fuente
0

También recibí la misma advertencia. Después de pensarlo durante algún tiempo, me di cuenta de mi error al trabajar con SQL (MS SQL).

Warning: the 'configuration' element is not declared

Usando C #

Código de configuración de la aplicación:

<connectionStrings>
    <add name="dbx" connectionString="Data Source=ServerNameHere;Initial Catalog=DatabaseNameHere;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

* Esto indica el nombre de la base de datos en connectionStrings, cuando conecté mi código SQL como práctica, siempre uso el nombre de la base de datos, el esquema y luego la tabla. Esta práctica no se llevó bien en Visual Studio porque soy un principiante. Eliminé el nombre de la base de datos de mi sintaxis SQL y solo llamé desde el esquema, tabla de datos. Esto me resolvió el problema.

Form.CS:

 using (SqlCommand cmd = new SqlCommand("SELECT * FROM [DatabaseName].[Schema].[TableName] WHERE [MEPeriod] = '2020-06-01'", con))

Actualizado a:

using (SqlCommand cmd = new SqlCommand("SELECT * FROM [Schema].[TableName] WHERE [MEPeriod] = '2020-06-01'", con))

Esto funcionó para mí, espero que sea útil.

Kenneth
fuente