Елемент конфігурації не оголошений


85

Я роблю деяку роботу у Visual Studio 2012 Express Edition. Я додав XML-файл App.config наступним чином:

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

Перше, що трапляється, - це попередження, яке говорить "Елемент" конфігурація "не оголошується". Хтось знає, чому це відбувається? Схоже, елементи не можуть бути оголошені всередині, поки це не вирішено.

Дякую!

Це весь 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
Можливо, вам доведеться поглянути, як виглядає файл DotNetConfig.xsd. можна знайти десь на кшталт C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Xml \ Schemas
Adriaan Stander

Яка точна помилка, що дає це попередження? з повною рамкою стека, будь ласка?
Саймон Мур'є

Це працює на моєму випуску VS2012 Express.
Мартін Малдер

1
Це інтелісенсне питання. За допомогою нової консольної програми відкрийте App.config, і елемент <configuration> підкреслено синім кольором з помилкою "Елемент" конфігурація "не оголошено", однак ви все одно можете додати розділ <appsettings> зі своїм налаштувань у ньому та посилання на них із класом ConfigurationManager, але при додаванні налаштувань програм та <add key ... items, intellisense не відображається. Суто інтелісенсне питання, про яке я хотів отримати більше інформації, отже, щедрість.
seekerOfKnowledge

1
вибрано неправильну відповідь.
JJS

Відповіді:


22

У мене була та сама проблема. Це не помилка, це просто попередження; так що ваша програма все одно повинна скомпілювати. Я використав наступний простий конфігураційний файл, і попередження все ще видається.

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

Це питання було порушено на веб-сайті MSDN, але, схоже, воно не було вирішене належним чином. Дивіться посилання нижче:

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



340

Перейдіть до меню XML (пункт верхнього меню Visual Studio), виберіть схеми та знайдіть DotNetConfig.xsd та виберіть Використовувати цю схему .

XML - Схеми

Редагувати схему XML

Ваша проблема вирішиться точно


6
Це має бути відповіддю. Переглядаючи дату публікації цієї відповіді (серпень '15), я не надто впевнений, чи існувала ця відповідь на момент запитання (вересень '12). (Це було?)
Ян

1
Це одне для мене не спрацювало. Розглянемо це: stackoverflow.com/questions/4355278/…
Метт

2
Ця відповідь вирішила проблему у Visual Studio 2017. У будь-якому випадку, я не розумію, чому DotNetConfig.xsd не використовується за замовчуванням при створенні файлу .config.
Gael

Рамакрішна ти, людина! Працював ідеально. Додаток все ще компілюється, але настирливе попереджувальне повідомлення вже немає.
puffgroovy

Це працює, більше інформації про це, яке я помітив у своєму рішенні, стосується .net версії 4.5, за замовчуванням вибрано схему DotNetConfig.xsd, але для .net версії 4.6 DotNetConfig.xsd потрібно вибрати як @Ramakrishna, запропоновану у цій відповіді. Дякую!
ZeeProgrammer

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

внесіть зміни, як вище, і спробуйте


1
Попередження зникло. Дякую. Я повинен позначити це як відповідь.
Eae,

Схоже, що елементи всередині конфігурації не читаються середовищем, яке є Visual Studio 2012 Express Edition.
Eae,

@sepoto: якщо u видаляє простір імен xmlns, то він знову дає попередження
Равіндра Багале

1
Я включив App.config повністю у своєму дописі. З якихось причин мені не вдалося змусити його працювати належним чином із середовищем Visual Studio 2012 Express C #. Я спробував ваше рішення вище, однак тоді я отримав попередження для елементів всередині конфігурації, тому все стало спірним. Я високо ціную вашу допомогу, але я не вірю, що відповідь ще є.
Eae,

1
Відповідь на це питання частково правильно: Визначати Xmlns (значення може бути що завгодно), то попередження для configurationзникає, але інформаційне повідомлення видається configurationі для кожного піделементи. Якщо xmlns вказує на фактичний DTD, який визначає всі елементи, то ці повідомлення також повинні зникнути.
Mike C

6

Мені довелося -> Перейти до меню XML (пункт верхнього меню Visual Studio) вибрати схеми та вибрати DotNetConfig.xsd І RazorCustomSchema.xsd І EntityFrameworkConfig_6_1_0.xsd


1

Я просто мав це спливаюче спливаюче вікно всередині автоматично сформованого файлу xml під час роботи над проектом xaml.

Виправлено за допомогою Debug-> Clean Solution та Debug-> Rebuild Solution. Можливо, захочеться спробувати це, перш ніж захоплюватися схемами.


0

У Visual Studio 2013 Express Edition відсутній DotNetConfig.xsd ( https://connect.microsoft.com/VisualStudio/feedback/details/817322/dotnetconfig-xsd-files-not-present-in-vs-2013-express-for- робочий стіл ).

Отже, щоб позбутися попередження у VS 2013 Express:

  • отримати копію DotNetConfig.xsd з іншої системи або з Інтернету (я використовував https://gist.github.com/eed3si9n/5dd7dd98ad2b3f668928b23477de35a3 )
  • завантажте в C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Xml \ Schemas
  • додайте схему після відповіді Рамакрішни

Попередження повинно зникнути.



0

У мене було менше місця на диску, що могло призвести до неповного завантаження мого програмного рішення. Цю проблему "елемент-конфігурації-не оголошено" вирішено після того, як я створив трохи місця на своєму диску.


0

Я теж отримав те саме попередження. Подумавши про деякий час, я зрозумів свою помилку в роботі з SQL (MS SQL).

Warning: the 'configuration' element is not declared

Використання C #

Конфігураційний код програми:

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

* це викликає ім'я бази даних у connectionStrings, коли я підключаю свій код SQL як практику, я завжди використовую ім'я бази даних, схему, а потім таблицю. Ця практика не вдалася добре у Visual Studio, оскільки я новачок. Я видалив ім’я db зі свого синтаксису SQL і викликав лише зі схеми, таблиці даних. Це вирішило проблему для мене.

Form.CS:

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

Оновлено до:

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

Це спрацювало для мене, сподіваюся, це буде корисним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.