Как исправить ошибку: "Не удалось найти информацию схемы для атрибута/элемента", создав схему
У меня есть приложение 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
(веб-сайт) для создания.
- Сохраните вновь созданные 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.
Сохранить изменения = > проблема решена!