Как исправить ошибку: «Не удалось найти информацию о схеме для атрибута / элемента» путем создания схемы - PullRequest
148 голосов
/ 14 марта 2011

У меня есть приложение для форм Windows, написанное на VS2010 с использованием C #, и в файле app.config появляются следующие ошибки:

Message 4   Could not find schema information for the attribute 'name'
Message 8   Could not find schema information for the attribute 'name'
Message 12  Could not find schema information for the attribute 'name'
Message 5   Could not find schema information for the attribute 'serializeAs'
Message 15  Could not find schema information for the element 'CCP_Utility.Settings1'
Message 2   Could not find schema information for the element 'CCP_Utility.Properties.Settings'
Message 3   Could not find schema information for the element 'setting'
Message 1   Could not find schema information for the element 'userSettings'
Message 6   Could not find schema information for the element 'value'

Что мне нужно изменить в коде, чтобы решить эту проблему?Где я могу редактировать то, что в CCP_Utility.Settings1 и CCP_Utility.Properties.Settings?

Вот код app.config:

<configuration>
<configSections>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="CCP_Utility.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        <section name="CCP_Utility.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
  </configSections>
<userSettings>
  <CCP_Utility.Properties.Settings>
    <setting name="SourceDir" serializeAs="String">
      <value />
    </setting>
    <setting name="TargetDir" serializeAs="String">
      <value />
    </setting>
    <setting name="CorpID" serializeAs="String">
      <value />
    </setting>
  </CCP_Utility.Properties.Settings>
    <CCP_Utility.Settings1>
        <setting name="sourceDir" serializeAs="String">
            <value />
        </setting>
        <setting name="targetDir" serializeAs="String">
            <value />
        </setting>
    </CCP_Utility.Settings1>

   </userSettings>
</configuration>

Ответы [ 10 ]

209 голосов
/ 19 февраля 2013

Самый быстрый, простой и ленивый способ решения проблемы:

  1. Щелкните правой кнопкой мыши значок проекта в обозревателе решений и выберите «Свойства».
  2. Перейдите на вкладку «Приложение» и выберите более раннюю целевую платформу .NET.
  3. Сохранить изменения.
  4. Перейдите на вкладку «Приложение» и выберите исходную целевую платформу .NET.
  5. Сохранить изменения => проблема решена!
164 голосов
/ 15 марта 2011

ОБНОВЛЕНИЕ Сентябрь 2015 Этот ответ продолжает вызывать недовольство, поэтому я собираюсь оставить его здесь, поскольку он кажется полезным для некоторых людей, но, пожалуйста, ознакомьтесь с другими ответами от @ reexmonkey и @ Pressacco первый.Они могут обеспечить лучшие результаты.

ОРИГИНАЛЬНЫЙ ОТВЕТ Попробуйте:

  1. В Visual Studio откройте файл app.config или web.config.
  2. Перейдите в меню «XML» и выберите «Создать схему».Это действие должно создать новый файл с именем "app.xsd" или "web.xsd".
  3. Сохраните этот файл на свой диск.
  4. Вернитесь к своему app.config или web.config.а в окне редактирования щелкните правой кнопкой мыши и выберите свойства.Оттуда убедитесь, что на только что сгенерированный xsd есть ссылка в свойстве Schemas.Если его там нет, добавьте его.

Это должно привести к тому, что эти сообщения исчезнут.

Я сохранил свой web.xsd в корне моей веб-папки (что может быть не лучшим местом для него, но только длядемонстрационные цели), и мое свойство Schemas выглядит следующим образом:

"C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ xml \ Schemas \ DotNetConfig.xsd" "Web.xsd"

21 голосов
/ 22 сентября 2011

XSD включен в EntLib 5 и устанавливается в каталог схемы Visual Studio.В моем случае его можно найти по адресу:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\EnterpriseLibrary.Configuration.xsd

КОНТЕКСТ

  • Visual Studio 2010
  • Enterprise Library 5

ШАГИ ДЛЯ УДАЛЕНИЯ ПРЕДУПРЕЖДЕНИЙ

  1. откройте app.config в проекте Visual Studio
  2. щелкните правой кнопкой мыши в редакторе XML-документов, выберите «Свойства»
  3. и добавьте полностьюквалифицированный путь к «EnterpriseLibrary.Configuration.xsd»

ASIDE

Стоит повторить, что эти «Список ошибок» «Сообщения» («Не удалось найти информацию о схеме для элемента»") отображаются только при открытии файла app.config.Если вы "Закрыть все документы" и скомпилируете ... сообщения не будут сообщаться.

1 голос
/ 28 июля 2016

Простой: в конструкторе отчетов Visual Studio
1. Откройте отчет в режиме разработки и удалите набор данных из файла RDLC
2. Откройте обозреватель решений и удалите фактический (поврежденный) файл XSD
3. Добавьте набор данных обратно в файл RDLC.
4. Приведенная выше процедура создаст новый файл XSD.
5. Более подробное описание приведено ниже.

В Visual Studio откройте файл отчета RDLC в режиме разработки.Нажмите на отчет и затем выберите View, а затем Report Data в верхнем меню.Выберите наборы данных, затем щелкните правой кнопкой мыши и удалите набор данных из отчета.Затем откройте обозреватель решений, если он еще не открыт в вашей Visual Studio.Найдите файл XSD (он должен совпадать с именем набора данных, который вы только что удалили из отчета).Теперь вернитесь назад и снова щелкните правой кнопкой мыши на наборах данных данных отчета и выберите Добавить набор данных.Это создаст новый файл XSD и запишет свойства набора данных в отчет.Теперь ваше сообщение об ошибке исчезнет, ​​а все недостающие данные появятся в ваших отчетах.

1 голос
/ 11 января 2015

Я обнаружил, что в связанном модуле произошла синтаксическая ошибка, и он не компилировался - хотя компилятор мне этого не говорил. Просто дал мне ошибку, связанную с app.config. VS2010. Как только я исправил синтаксическую ошибку, все было хорошо.

0 голосов
/ 17 апреля 2018

В моем случае в моем коде была неоднозначная ссылка. Я перезапустил Visual Studio и смог увидеть сообщение об ошибке. Когда я решил эту проблему, другая ошибка исчезла.

0 голосов
/ 15 мая 2017

Эта ошибка возникает, когда ваш проект ссылается на устаревшие схемы.Используйте Visual Studio для создания новых.

В Visual Studio выполните следующие действия:

  1. Откройте файл app.config или web.config.
  2. Перейдите кменю XML и выберите Create Schema.

Это приведет к генерации файлов app#.xsd (приложение для Windows) или web#.xsd (веб-сайт).

Сохраните вновь сгенерированные xsd-файлы в корневой каталог проекта.
  • Откройте файл App.config или web.config, щелкните правой кнопкой мыши в текстовом редакторе, выберите свойства и нажмите кнопку ... рядом со значением для схем.
  • Добавьте вновь созданные xsd-файлы с помощью кнопки Add.
  • Нажмите OK

Не удалось найти информацию о схеме для атрибута / элемента. Теперь необходимо устранить ошибки.

0 голосов
/ 17 марта 2017

У меня это было в VS 2012, где в проекте было изменено «Имя раздела», и я исправил его, удалив в проекте «app.config», затем щелкнув правой кнопкой мыши проект в «Обозревателе решений».выберите «Свойства», затем «Настройки», затем внесите изменения в одну из настроек, сохраните и восстановите.Это создало новый app.config с правильной информацией.

0 голосов
/ 16 февраля 2017

Когда это случилось со мной (из ниоткуда), я собирался погрузиться в верхний ответ выше, а потом решил, что закрою проект, закрою Visual Studio, а затем снова открою все. Задача решена. VS ошибка?

0 голосов
/ 03 февраля 2016

Большая часть того, что я пишу, уже была охвачена Pressacco, но это относится к SpecFlow.

Я получаю это сообщение для элемента <specFlow> и поэтому добавляю файл specflow.xsd в решение этот ответ (с некоторыми изменениями, учитывающими элемент <plugins>).

После этого я (как и Pressacco) щелкнул правой кнопкой мыши в файловом буфере app.config и выбранных свойствах, а в Schemas я добавил "specflow.xsd" в конец. В целом Schemas теперь гласит:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\1033\DotNetConfig.xsd" "C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\EntityFrameworkConfig_6_1_0.xsd" "C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\RazorCustomSchema.xsd" "specflow.xsd"
...