Element konfiguracji nie został zadeklarowany


85

Wykonuję trochę pracy w Visual Studio 2012 Express Edition. Dodałem plik XML App.config w następujący sposób:

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

Pierwszą rzeczą, która się dzieje, jest wyświetlenie ostrzeżenia o treści „Element 'konfiguracji' nie został zadeklarowany”. Czy ktoś wie, dlaczego tak się dzieje? Wygląda na to, że nie można zadeklarować elementów wewnątrz programu, dopóki ten problem nie zostanie rozwiązany.

Dzięki!

To jest cały 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
Być może będziesz musiał przyjrzeć się, jak wygląda plik DotNetConfig.xsd. można znaleźć gdzieś w C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Xml \ Schemas
Adriaan Stander

Jaki jest dokładny błąd, co daje to ostrzeżenie? z pełną ramką?
Simon Mourier

Działa na moim wydaniu VS2012 Express.
Martin Mulder

1
To kwestia inteligencji. W zupełnie nowej aplikacji konsolowej otwórz plik App.config, a element <configuration> jest podkreślony na niebiesko z błędem „Element 'configuration' nie został zadeklarowany”, jednak nadal możesz dodać sekcję <appsettings> z settings w nim i odwołuje się do nich z klasą ConfigurationManager, ale podczas dodawania appsettings i <add key ... items, Intellisense nie pojawia się. Czysto intelektualna kwestia, o której chciałem uzyskać więcej informacji, stąd nagroda.
seekerOfKnowledge

1
wybrano złą odpowiedź.
JJS

Odpowiedzi:


22

Miałem ten sam problem. To nie jest błąd, to po prostu ostrzeżenie; więc Twoja aplikacja powinna nadal się kompilować. Użyłem następującego prostego pliku konfiguracyjnego i ostrzeżenie jest nadal wyświetlane.

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

Jest to problem, który został poruszony w witrynie MSDN, ale nie wydaje się, aby został on w zadowalający sposób rozwiązany. Zobacz link poniżej:

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



340

Przejdź do menu XML (pozycja górnego menu programu Visual Studio), wybierz schematy i znajdź DotNetConfig.xsd, a następnie wybierz opcję Użyj tego schematu .

XML - schematy

Edytuj schemat XML

Twój problem na pewno się rozwiąże


6
To powinna być odpowiedź. Patrząc na datę opublikowania tej odpowiedzi (sierpień '15), nie jestem pewien, czy ta odpowiedź istniała w momencie zadawania pytania (wrzesień '12). (Zrobiłeś to?)
Ian

1
Samo to mi nie pomogło. Rozważ to: stackoverflow.com/questions/4355278/ ...
Matt

2
Ta odpowiedź rozwiązała problem w programie Visual Studio 2017. W każdym razie nie rozumiem, dlaczego plik DotNetConfig.xsd nie jest używany domyślnie podczas tworzenia pliku .config.
Gael

Ramakrishna, ty człowieku! Działał doskonale. Aplikacja nadal się kompiluje, ale irytujący komunikat ostrzegawczy zniknął.
puffgroovy

To działa, więcej informacji na ten temat, które zauważyłem w moim rozwiązaniu, dotyczy wersji .net 4.5, schemat DotNetConfig.xsd jest wybrany domyślnie, ale dla wersji .net 4.6 DotNetConfig.xsd musi być wybrany jako @Ramakrishna sugerowany w tej odpowiedzi. Dzięki!
ZeeProgrammer

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

dokonaj zmian, jak powyżej i spróbuj


1
Ostrzeżenie zniknęło. Dziękuję uprzejmie. Muszę zaznaczyć to jako odpowiedź.
Eae,

Wygląda na to, że teraz elementy wewnątrz konfiguracji nie są odczytywane przez środowisko jakim jest Visual Studio 2012 Express Edition.
Eae

@sepoto: jeśli u usunie przestrzeń nazw xmlns, to ponownie daje ostrzeżenie
Ravindra Bagale

1
W poście zawarłem cały plik App.config. Z jakiegoś powodu nie udało mi się sprawić, aby działał poprawnie ze środowiskiem Visual Studio 2012 Express C #. Wypróbowałem twoje rozwiązanie powyżej, ale wtedy otrzymałem ostrzeżenia dotyczące elementów wewnątrz konfiguracji, więc sprawy stały się dyskusyjne. Bardzo doceniam twoją pomoc, ale nie wierzę, że jest jeszcze odpowiedź.
Eae

1
Ta odpowiedź jest częściowo poprawna: Określanie xmlns (wartość może być cokolwiek), przy czym ostrzeżenie dla configurationznika, ale komunikat informacyjny jest wydawany przez configurationi dla każdego podelementu. Jeśli xmlns wskazuje na rzeczywisty DTD, który definiuje wszystkie elementy, wtedy te komunikaty również powinny zniknąć.
Mike C

6

Musiałem -> Przejdź do menu XML (pozycja górnego menu programu Visual Studio), wybierz schematy i wybierz DotNetConfig.xsd AND RazorCustomSchema.xsd AND EntityFrameworkConfig_6_1_0.xsd


1

Właśnie dostałem to ostrzeżenie w automatycznie generowanym pliku xml podczas pracy nad projektem XAML.

Użycie opcji Debug-> Clean Solution i Debug-> Rebuild Solution naprawiło to. Może zechcesz to wypróbować, zanim polubisz schematy.


0

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

Aby pozbyć się ostrzeżenia w VS 2013 Express:

Ostrzeżenie powinno zniknąć.



0

Miałem mniej miejsca na dysku, co mogło spowodować niepełne załadowanie mojego rozwiązania aplikacyjnego. Ten problem „nie zadeklarowanego elementu konfiguracji” został rozwiązany po utworzeniu miejsca na dysku.


0

Otrzymałem też to samo ostrzeżenie. Po pewnym czasie zastanowienia zdałem sobie sprawę, że mój błąd podczas pracy z SQL (MS SQL).

Warning: the 'configuration' element is not declared

Korzystanie z C #

Kod App.Config:

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

* to wywołuje nazwę bazy danych w connectionStrings, kiedy w ramach praktyki podłączałem kod SQL, zawsze używam nazwy bazy danych, schematu, a następnie tabeli. Ta praktyka nie została dobrze przeniesiona w Visual Studio, ponieważ jestem początkującym. Usunąłem nazwę db z mojej składni SQL i wywołałem tylko ze schematu, tabeli danych. To rozwiązało problem.

Form.CS:

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

Zaktualizowano do:

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

To zadziałało dla mnie, mam nadzieję, że okaże się przydatne.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.