Как исправить ошибку: "Не удалось найти информацию схемы для атрибута/элемента", создав схему

У меня есть приложение Windows Forms, написанное на VS2010 с С#, и получить следующие ошибки в файле 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>

Ответ 1

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

ОРИГИНАЛЬНЫЙ ОТВЕТ
Сделайте снимок:

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

Это должно привести к исчезновению этих сообщений.

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

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

Ответ 2

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

  • Щелкните правой кнопкой мыши значок проекта в обозревателе решений и выберите "Свойства".
  • Перейдите на вкладку "Приложение" и выберите более раннюю платформу .NET.
  • Сохранить изменения.
  • Перейдите на вкладку "Приложение" и выберите исходную платформу .NET.
  • Сохранить изменения = > проблема решена!

Ответ 3

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

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

КОНТЕКСТ

  • Visual Studio 2010
  • Корпоративная библиотека 5

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

  • открыть файл app.config в проекте Visual Studio
  • щелкните правой кнопкой мыши в редакторе XML-документа, выберите "Свойства"
  • добавить полный путь к "EnterpriseLibrary.Configuration.xsd"

ASIDE

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

В Visual Studio сделайте следующее:

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

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

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

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

Ответ 9

Большая часть того, что я пишу, уже была покрыта 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"

Ответ 10

Это сработало для меня.

Щелкните правой кнопкой мыши значок проекта в обозревателе решений и выберите "Свойства".

Перейдите на вкладку "Приложение" и выберите более раннюю платформу .NET.

Сохранить изменения.

Перейдите на вкладку "Приложение" и выберите исходную целевую инфраструктуру .NET.

Сохранить изменения = > проблема решена!