L'elemento di configurazione non è dichiarato


87

Sto facendo del lavoro in Visual Studio 2012 Express Edition. Ho aggiunto un file XML App.config come segue:

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

La prima cosa che accade è che compare un avviso che dice "L'elemento 'configurazione' non è dichiarato". Qualcuno sa perché sta succedendo? Sembra che gli elementi non possano essere dichiarati all'interno di finché questo non viene risolto.

Grazie!

Questo è l'intero XML:

<?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=""/>


4
Potrebbe essere necessario dare un'occhiata a come appare il file DotNetConfig.xsd. può essere trovato da qualche parte come C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Xml \ Schemas
Adriaan Stander,

Qual è l'errore esatto, cosa dà questo avviso? con uno stack frame completo per favore?
Simon Mourier

Funziona sulla mia edizione VS2012 Express.
Martin Mulder

1
È una questione intellettuale. Con una nuovissima applicazione console, apri App.config e l'elemento <configuration> è sottolineato in blu con l'errore "L'elemento 'configuration' non è dichiarato", tuttavia, puoi ancora aggiungere una sezione <appsettings> con il tuo impostazioni in esso e fare riferimento ad esse con la classe ConfigurationManager, ma quando si aggiungono le impostazioni di app e gli elementi <aggiungi chiave ..., intellisense non viene visualizzato. Un problema puramente intellettuale su cui volevo maggiori informazioni, da qui la taglia.
seekerOfKnowledge

1
risposta sbagliata scelta.
JJS

Risposte:


23

Ho avuto lo stesso problema. Non è un errore, è semplicemente un avvertimento; quindi la tua applicazione dovrebbe comunque essere compilata. Ho usato il seguente semplice file di configurazione e l'avviso viene ancora prodotto.

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

È un problema che è stato sollevato sul sito Web MSDN, ma non sembra essere stato risolto in modo soddisfacente. Vedi link sotto:

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



344

Vai al menu XML (elemento del menu in alto di Visual Studio) scegli gli schemi e trova DotNetConfig.xsd e scegli Usa questo schema .

XML - Schemi

Modifica schema XML

Il tuo problema si risolverà di sicuro


6
Questa dovrebbe essere la risposta. Guardando la data in cui è stata pubblicata questa risposta (agosto '15), non sono sicuro che questa risposta esistesse al momento della domanda (settembre '12). (Davvero?)
Ian

1
Questo da solo non ha funzionato per me. Considera questo: stackoverflow.com/questions/4355278/…
Matt

2
Questa risposta ha risolto il problema su Visual Studio 2017. Ad ogni modo, non capisco perché DotNetConfig.xsd non viene utilizzato per impostazione predefinita quando viene creato un file .config.
Gael

Ramakrishna you da man! Ha funzionato perfettamente. L'applicazione viene comunque compilata ma il fastidioso messaggio di avviso è ora scomparso.
puffgroovy

Funziona, maggiori informazioni su questo che ho notato nella mia soluzione sono per .net versione 4.5 lo schema DotNetConfig.xsd è selezionato per impostazione predefinita ma per .net versione 4.6 DotNetConfig.xsd deve essere selezionato come @Ramakrishna suggerito in questa risposta. Grazie!
ZeeProgrammer

34
<configuration xmlns="schema URL">
   <!-- configuration settings -->
</configuration>

apportare modifiche, come sopra e provare


1
L'avvertimento è andato via. Grazie mille. Devo contrassegnare questo come la risposta.
Eae

Sembra che ora gli elementi all'interno della configurazione non vengano letti dall'ambiente che è Visual Studio 2012 Express Edition.
Eae

@sepoto: se rimuovi lo spazio dei nomi xmlns, dà di nuovo un avviso
Ravindra Bagale,

1
Ho incluso l'App.config nella sua interezza nel mio post. Per qualche motivo non sono riuscito a farlo funzionare correttamente con l'ambiente C # di Visual Studio 2012 Express. Ho provato la tua soluzione sopra, tuttavia ho ricevuto avvisi per gli elementi all'interno della configurazione, quindi le cose sono diventate discutibili. Apprezzo molto il tuo aiuto ma non credo che ci sia ancora una risposta.
Eae

1
Questa risposta è parzialmente corretta: specificando un xmlns (il valore può essere qualsiasi cosa), l' avviso per configurationscompare, ma viene emesso un messaggio informativo per configuratione per ogni sottoelemento. Se xmlns punta a una DTD effettiva che definisce tutti gli elementi, anche quei messaggi dovrebbero scomparire.
Mike C

6

Ho dovuto -> Vai al menu XML (voce del menu in alto di Visual Studio) scegliere gli schemi e selezionare DotNetConfig.xsd AND RazorCustomSchema.xsd AND EntityFrameworkConfig_6_1_0.xsd


1

Ho appena visualizzato questo popup di avviso all'interno di un file xml generato automaticamente mentre lavoravo a un progetto xaml.

L'utilizzo di Debug-> Clean Solution e Debug-> Rebuild Solution lo ha risolto. Potrei provarlo prima di avere fantasia con gli schemi.


0

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

Quindi, per eliminare l'avviso in VS 2013 Express:

L'avvertimento dovrebbe essere sparito.



0

Avevo meno spazio sull'unità, il che avrebbe potuto causare un caricamento incompleto della mia soluzione applicativa. Questo problema "l'elemento di configurazione non è dichiarato" è stato risolto dopo aver creato dello spazio sul disco.


0

Ho anche ricevuto lo stesso avvertimento. Dopo averci pensato per un po 'mi sono reso conto del mio errore lavorando con SQL (MS SQL).

Warning: the 'configuration' element is not declared

Utilizzando C #

Codice App.Config:

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

* questo richiama il nome del database nelle connectionStrings, quando ho inserito il mio codice SQL come pratica, uso sempre il nome del database, lo schema, quindi la tabella. Questa pratica non è stata mantenuta bene in Visual Studio poiché sono un principiante. Ho rimosso il nome db dalla mia sintassi SQL e ho chiamato solo dallo schema, tabella dati. Questo ha risolto il problema per me.

Modulo.CS:

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

Aggiornato a:

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

Questo ha funzionato per me, spero che sia stato trovato utile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.