У меня есть приложение Windows Forms, написанное на VS2010 с vb и получившее следующие ошибки в файле app.config: [duplicate]

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
135
задан John Saunders 13 May 2014 в 17:58
поделиться

10 ответов

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

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

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

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

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

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

153
ответ дан Matt 20 August 2018 в 10:27
поделиться
  • 1
    @rsbarro, Спасибо, ваш ответ! Почему у вас есть 2 xsd-файла? Я создал схему и создал только 1 файл-app.xsd, который я сохранил в корневом каталоге. Ошибки исчезли, но теперь я получаю предупреждение: «Конфигурация глобального элемента» объявлена ​​как «. Любая идея о том, как это исправить? – Brian McCarthy 15 March 2011 в 17:10
  • 2
    Просто используйте диалоговое окно «Свойства», чтобы выбрать вашу схему или добавить другую схему. Когда вы просматриваете app.config, щелкните правой кнопкой мыши в окне редактора и выберите «Свойства». Вы должны увидеть Схемы в редакторе редактора свойств, который появляется. Кроме того, если вы нажмете кнопку & quot; ... & quot; в схемах позволяет выбрать схемы, которые вы хотите использовать для своего конфигурационного файла, используя приятный графический интерфейс. – rsbarro 15 March 2011 в 18:08
  • 3
    Благодарю. Это сработало, но есть ли хорошее место, которое я могу прочитать, чтобы понять, ПОЧЕМУ это происходит? Похоже, мне просто вдруг понадобилось создать схему для моего web.config после добавления большого количества контента для DotNetOpenAuth, а затем сгенерировать файл edmx с нуля. Это имеет смысл в «Вы изменили много вещей, поэтому что-то выиграло». но было бы полезно узнать, почему файл web.config самопроизвольно нуждается в схеме. – froggythefrog 5 January 2013 в 07:49
  • 4
    Когда вы создаете файл Web.xsd, включайте только схемы, которые вы добавляете в разделы web / app.config (разделы пользователя). Исключить все остальные, которые уже включены в схему по умолчанию или другие .xsd. – Pagotti 11 July 2013 в 03:59
  • 5
    НЕТ НЕТ НЕТ!! Это не «решение», так как оно даже не является реальной проблемой. Смотрите и голосуйте за ответ @ pressacco. Также работает ответ reexmonkey. Почему этот ответ получает так много положительных голосов? 1. Просто игнорируйте! Закройте app.config или web.config и скомпилируйте, вы даже не увидите сообщения. 2. Хотя не нужно, разрешите, щелкнув правой кнопкой мыши свойства .config, исправляя путь к XSD, поставленному VS. (ответ @ pressacco) 3. Или: измените параметры проекта DotNet и обратно. Повторите дважды. (ответ reexmonkey). Может вызвать проблемы с обновлениями пакетов. – pashute 29 April 2015 в 10:02

Большая часть того, что я пишу, уже была охвачена 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"
-1
ответ дан Community 20 August 2018 в 10:27
поделиться

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

0
ответ дан Davy C 20 August 2018 в 10:27
поделиться

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

1
ответ дан flobadob 20 August 2018 в 10:27
поделиться

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

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

1
ответ дан Grambot 20 August 2018 в 10:27
поделиться

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

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

CONTEXT

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

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

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

ASIDE

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

20
ответ дан Janis S. 20 August 2018 в 10:27
поделиться
  • 1
    Извините, я мог бы что-то упустить, что вы подразумеваете под & quot; добавьте путь к полностью квалифицированному пути к & quot; EnterpriseLibrary.Configuration.xsd & quot; & quot; – Coops 7 June 2012 в 14:11
  • 2
    Я полностью определил путь: я использую абсолютный путь. Например C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\EnterpriseLibrary.Configuration.xsd. В операционной системе Windows относительный путь может включать в себя. \ И .. \ символы. – Pressacco 14 June 2012 в 14:45
  • 3
    Спасибо за информацию о закрытии файла XML, чтобы удалить предупреждения. )Странное поведение( – Machtyn 21 May 2015 в 21:03
  • 4
    Недостает ли EnterpriseLibrary.Configuration.xsd в Visual Studio 2015? – Luke 12 November 2015 в 11:36
  • 5
    Просто закрытие XML-файла заставило проблему уйти для меня – Taegost 30 January 2017 в 18:48

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

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

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

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

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

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

0
ответ дан Knickerless-Noggins 20 August 2018 в 10:27
поделиться

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

0
ответ дан Rockin Raul 20 August 2018 в 10:27
поделиться
  • 1
    Overkill. Закрытие редактора файлов App.config в VS достаточно. Возможно, ошибка VS. – Jirka Hanika 16 June 2017 в 19:49

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

0
ответ дан Sofia Khwaja 20 August 2018 в 10:27
поделиться

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

  1. Щелкните правой кнопкой мыши значок проекта в обозревателе решений и выберите «Свойства».
  2. Перейдите в раздел " Приложение "и выберите более раннюю платформу .NET.
  3. Сохраните изменения.
  4. Перейдите на вкладку« Приложение »и выберите исходную целевую среду .NET.
  5. Сохранить изменения => проблема решена!
194
ответ дан Suncat2000 20 August 2018 в 10:27
поделиться
  • 1
    Не работал для меня в VS2012. – Sam 26 June 2013 в 12:22
  • 2
    Милая! Работал для меня в VS2012. – amo 9 October 2013 в 20:42
  • 3
    Работал и для меня (VS2013 Premium). – Remco 20 January 2014 в 17:04
  • 4
    Это может не сработать с первой попытки. Мне нужно было сделать это дважды, прежде чем он работал в VS 2013 Express. – H2ONaCl 25 April 2014 в 15:55
  • 5
    Работала для меня в Visual Studio 2015. Было бы хорошо, если бы кто-нибудь мог объяснить, почему. – Jonathan Wood 9 October 2015 в 20:23
Другие вопросы по тегам:

Похожие вопросы: