вторник, 20 марта 2018 г.

Редактор Xaml и ошибка "Имя <...> не существует в пространстве имен <...>"

При работе в Visual Studio многие сталкиваются с ошибками редактора xaml, которые при своём наличии не мешают собрать проект. Эти ошибки в интернете чаще всего носят название "баг visual studio".

Однако, есть разновидность таких ошибок, которые не мешают работе (просто раздражают), а есть ошибки, которые именно мешают работе. Одним из примеров такой ошибки является "Имя <...> не существует в пространстве имен <...>" при установке DataContext окна в режиме дизайна. Конечно можно не задавать DataContext в разметке, а задавать его в коде (что в принципе считается правильным, так как код и разметку могут делать разные люди), но тогда при использовании Binding'ов IntelliSense не будет выдавать нам подсказок. Я не буду говорить в этой записи о вариантах установки DataContext в режиме дизайна - не об этом речь. Расскажу я о вариантах решения


Эту ошибку можно устранить и вот основные варианты, которые чаще всего советуют в интернете:
  • Перестроить проект
  • Перезагрузить студию
  • Перезагрузить компьютер
После того, как эти пункты не помогли, можно найти еще один вариант - очистить кэш Visual Studio: для этого нужно удалить все из папки C:\Users\{user}\AppData\Local\Microsoft\VisualStudio\{version}\ComponentModelCache.

Но и этот вариант может не помочь! Поэтому самым неожиданным решением (с которого советую начинать) является следующее:
  1. Открыть свойства проекта
  2. Перейти на вкладку Сборка
  3. Установить значение Цель платформы в значение x86
  4. Перестроить проект
  5. Вернуть значение Цель платформы в нужное Вам значение (обычно это AnyCPU. В моём случае было x64)
После этого редактор xaml начинает работать нормально. До следующего бага =)

UPDATE 22.03.2018:
Также было замечено, что данная проблема чаще возникает, если Цель платформы стоит в значении AnyCPU

Комментариев нет:

Отправить комментарий