Виправлення: Глобальний елемент `` конфігурація '' вже оголошено


78

Я використав друге рішення " Як вирішити" "Не вдалося знайти інформацію про схему для елемента / атрибута <xxx>"?

Тобто створив XSD за допомогою кнопки для створення схеми. Я змінив таблицю стилів в app.config на app.xsd, але тепер я отримую попередження:

Глобальний елемент `` конфігурація '' вже оголошено в app.xsd

Навіть при зміні назви відображається попередження. У когось є рішення для цього?

Відповіді:


39

У мене була подібна проблема із запитанням, на яке ви посилаєтесь, я дотримувався цих інструкцій, і все було нормально. Перш за все переконайтеся, що EnterpriseLibrary.Configuration.xsdвходить %ProgramFiles%\Microsoft Visual Studio [version]\Xml\Schemas\, а потім виконайте наступне :

Бібліотека підприємства встановлює схему у Visual Studio, яка забезпечує IntelliSense® для редагування файлів конфігурації Enterprise Library у редакторі Visual Studio XML. Ви повинні увімкнути схему, перш ніж зможете її використовувати.

Щоб увімкнути схему конфігурації бібліотеки підприємства

  1. Відкрийте файл конфігурації у Visual Studio, двічі клацнувши його в Провіднику рішень.
  1. У меню XML натисніть Схеми ..., щоб відкрити діалогове вікно Схеми XML.
  1. Знайдіть схему з назвою EnterpriseLibrary.Configuration.xsd. Це встановлюється автоматично. Однак, якщо він не відображається у списку, натисніть Додати та перейдіть до папки% Program Files% \ Microsoft Visual Studio [версія] \ Xml \ Схеми, потім виберіть EnterpriseLibrary.Configuration.xsd та натисніть кнопку Відкрити.
  1. Змініть значення у стовпці Використовувати, щоб використовувати цю схему. Потім натисніть OK.

Посилання на статтю є тут , сподіваюся, це допоможе


Дякую ... однак я більше не можу відтворити проблему. Коли я перезавантажував комп’ютер (що я рідко роблю), попередження видаляються, тому я не можу сказати зараз, чи працює ваше рішення. Але оскільки ви дали рішення, я все одно підтримав його.
Michel Keijzers

9
У моєму випадку з проблемою, описаною у питанні, за допомогою Visual Studio 2013 на машині не було EnterpriseLibrary.Configuration.xsd.
Чарльз Опперманн

7
Це, принаймні, направило мене в правильному напрямку - схеми VS 2013 завантажувались у VS 2015. Установіть їх на Авто, і помилка зникла.
Пітер Т. Лакомб-молодший

6
Те саме тут @PeterLaCombJr. Я скинув усі, які були "Використовувати", до "Автоматично", і помилки зникли, і VS 2017 знову почав правильно перевіряти мою app.config і дав мені IntelliSense.
ahwm

що врешті-решт працювало для мене назавжди, що видалити .suo, як згадано нижче
Джордж Бірбіліс

186

Перезавантаження у мене не спрацювало, тому я хотів би поділитися тим, що вдалося.

По-перше, я щойно перейшов на Windows 8. Ця проблема раніше не виникала. І ця проблема сталася лише в одному з моїх файлів app.config. Тому я вирішив порівняти проблематичний app.config з хорошим. У Visual Studio, з відкритим app.config, я перейшов до Xml -> Schemas. Я помітив, що хороша конфігурація перевірила лише три з цих схем. У поганого було перевірено ті самі три, а також DotNetConfig.xsd. Після того, як я змінив Useстовпець на автоматичний, для DotNetConfig.xsd проблема зникла.

введіть тут опис зображення

введіть тут опис зображення


6
Для мене це було DotNetConfig.xsd. Цікаво, чи це було через зміну версії збірки .net, оскільки я також помітив DotNetConfig45.
Адам

6
Якщо натиснути OK, перш ніж вибрати інший рядок, він не розпізнає зміни.
AaronLS

2
Вирішив питання. Дякую
Vetras

5
Це мені не допомогло. Що б я не робив, "Не використовувати", "Автоматично" або "Видалити", обидва DotNetConfig40.xsd та DotNetConfig.xsd були обрані. Я спробував переконатися, що вибрав ще один рядок після вибору. Нарешті мені довелося перейменувати DotNetConfig.xsd на "DotNetConfig НЕ ВИКОРИСТОВУВАТИ.xsd", щоб запобігти його завантаженню.
Чарльз Опперманн

1
Я відкрив app.config помітив повідомлення. далі перейшов до XML >> Схеми >> Я помітив DotNetConfig.xsd та DotNetConfig45.xsd. Я змінив для DotNetConfig.xsd [Використовувати] на Автоматичний. перезапустила візуальну студію 2017, і це було вирішено зараз.
лип

33

Моя проблема полягала в тому, що я перейшов із .Net 4.5 на .Net 4.0. Для вирішення проблеми я переключив усі позначені схеми на автоматичні.


4
Ви знайдете схеми у вікні властивостей файлу app.config. Клацніть на кнопку еліпса Схеми і замініть кожен галочку на Автоматично зі спадного меню.
RobCroll

Я намагався видалити порушувальну схему окремо, але вона постійно поверталася. Лише коли я встановив усі схеми автоматичними, схема, яку я хотів піти, насправді пішла.
Даніель Гіменес

19

Я теж боровся з цим деякий час. Виявляється, моя версія проблеми виникла із прихованого {PROJECTNAME}.SUOфайлу, створеного Visual Studio.

Я припускаю, що VS кешує асоціації схеми XSD у цьому файлі. Попередження з’явилися після того, як я змінив цільову структуру, і вони зникли після того, як я видалив файл SUO і перезапустив VS.


3
У мене була подібна проблема з VS 2017 RC, і це також спрацювало, дякую
TrtlBoy

5
Це допомогло. У моєму випадку файл знаходився в {solution} /. Vs / {project} /v14/.suo
Ян Ф.

2
Це спрацювало і у фактичному випуску VS 2017!
довільна

дякую, це виправлено назавжди (перейменування файлу .xsd на _.xsd також спрацювало). До речі, видалення .suo закінчилось DotNetConfig.xsd і видалило DotNetConfig45.xsd зі списку (було перетворено з 4.5 на 4.7.2 додаток MVC5 [який нещодавно було перетворено з MVC4] та деякі консольні програми та бібліотеки до появи випуску)
Джордж Бірбіліс

До речі, як я вже згадую на zoomicon.wordpress.com/2019/04/04/... Я щойно знайшов файл ".suo" без частини файлу, просто мав розширення файлу і видалив його
Джордж Бірбіліс

12

З ознаками, описаними у питанні, та за допомогою Visual Studio 2013 (оновлення 4), я міг побачити у діалоговому вікні Схеми XML [sic], що DotNetConfig.xsdіDotNetConfig40.xsd були обрані для використання.

Я використовую проект .NET Framework 4.0.

Два файли XSD конфліктують між собою, кожен визначає однакові елементи, що викликає попередження.

Ці файли схеми містяться в %programfiles(x86)%\Microsoft Visual Studio 12.0\xml\Schemas\папці.

DotNetConfig.xsd знаходиться в 1033 вкладеній папці, і видається новою, більш повною версією.

Незалежно від того, які налаштування я вибрав у схемах XML, я не зміг скасувати вибір або видалити DotNetConfig40 або DotNetConfig . Я спробував " Видалити " і змінив параметр " Використання " з " Використовувати цю схему " на " Автоматичний ", а потім " Не використовувати цю схему ".

Незалежно від того, що було вибрано, для будь-якого файлу, коли я повернуся до діалогового вікна, обидва будуть обрані для використання. Я також спробував фокус переходу до іншого рядка, перш ніж натиснути " OK " безрезультатно.

Нарешті, я перейменував DotNetConfig40.xsdфайл на, DotNetConfig40 DO NOT USE.xsdщоб запобігти його завантаженню. Це негайно вирішило проблему.

Я не задоволений тим, що маю це робити, і переживаю, чи це матиме небажаний побічний ефект з іншими проектами. Я оновлю цю публікацію своїми результатами.


1
Мені також не вдалося використати графічний інтерфейс, я перейменував загальний DotNetConfig.xsd у підпапці 1033 \ і це негайно вирішило мою проблему.
Бруніс

1
дякую, це спрацювало, проте видалення .suo, здається, є найкращим рішенням. Це зберегло DotNetConfig.xsd у списку схем (видалило DotNetConfig45.xsd, яке також було там після того, як я перетворив з 4.5 на 4.7.2)
Джордж Бірбіліс

6

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


5

Я помітив цю проблему з моїм VS2017.

Зміна DotNetConfig.xsd на використання "Автоматичного" вирішило проблему.

введіть тут опис зображення


3
здається, це не працює постійно (для мене це працювало лише один раз). Видаліть файл .suo і натомість відкрийте його знову
Джордж Бірбіліс,

4

Після перезавантаження системи проблема вирішена, тобто я більше не отримую жодних попереджень щодо схеми.

Отже, здається, що перезавантаження (і, можливо, якесь неявне відновлення / скидання видалило попередження).


4

Для мене я помітив, що у мене була купа XML Schemasдубльованих, я просто позначив як Don't Useусі, які не були пов'язані з Visual Studio 2017. Проблема відразу зникла


3

Використання Visual Studio 2015 Community Edition - генерація web.xsd у кореневій папці мого проекту та додавання його до списку схем очистили всі попередження, крім одного,

Глобальний елемент 'конфігурація' вже оголошено '.

Закриття файлу web.config у текстовому редакторі та відновлення проекту зняли це попередження.


2

Некромансинг: оновіть 2019 за допомогою Visual Studio 2017

Я намагався зробити те, що пропонували інші:

  • Я спробував перезавантажити систему: не вдалося.
  • відкрийте App. Config
  • Меню: XML - Схеми ...
  • Зверніть увагу, що існує кілька DotNetConfigXX.csd (XX - або емоті, або число)
  • Я намагався встановити їх автоматично або "не використовувати цю схему"
  • Я намагався видалити дублікати схем

Все це не спрацювало.

Однак розчин OLEG описаний тут спрацювало.

Мені потрібно було лише замінити наступну частину всіх використаних файлів DotNetConfigXX.xsd (XX порожня або цифра) на такий код

 <xs:element name="startup" vs:help="configuration/startup" 
 ...
 </xs:element>

Замінити:

<xs:element name="startup" vs:help="configuration/startup">
    <xs:complexType>
        <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="requiredRuntime"     vs:help="configuration/startup/requiredRuntime">
                <xs:complexType>
                    <xs:attribute name="version" type="xs:string" use="optional" />
                    <xs:attribute name="safemode" type="xs:boolean" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="supportedRuntime" minOccurs="1" maxOccurs="unbounded" vs:help="configuration/startup/supportedRuntime">
                <xs:complexType>
                    <xs:attribute name="version" type="xs:string" use="optional" />
                    <xs:attribute name="sku" type="xs:string" use="optional" />
                </xs:complexType>
            </xs:element>
        </xs:choice>
        <xs:attribute name="useLegacyV2RuntimeActivationPolicy" type="xs:boolean" use="optional" />
        <!-- see http://msdn.microsoft.com/en-us/library/bbx34a2h.aspx -->
    </xs:complexType>
</xs:element>

Не забудьте створити резервну копію оригінальних файлів .XSD!

Після перезапуску Visual Studio помилки зникли.


Дякую, я вирішив цю проблему, але добре, щоб інші бачили, що є рішення; проголосував.
Michel Keijzers,

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