WPF: конструктор VS2012 показывает "Компонент" XXX "не имеет ресурса, идентифицированного с помощью URI YYY"
Как видно из названия, эта ошибка вызывается дизайнером, что означает, что дизайнер не может корректно отображать мой UserControl, что, в свою очередь, означает, что я не могу плавно перейти от элемента к элементу в этом UserControl, чтобы внести изменения. Действительно раздражает.
XXX - это имя моего UserControl, в то время как URI YYY - это фактически XXX-путь. Поэтому я не знаю, понимаю, что он не может найти себя ресурсом. Я ошибся в этой ошибке, но большинство из них произошло во время выполнения. В моем случае это не происходит, когда я его выполняю. Описание этой ошибки действительно недостаточно объяснимо, потому что я не уверен, кто в CLR загружает сам файл в качестве ресурса.
Еще одна вещь, о которой стоит упомянуть, заключается в том, что эта ошибка возникает только после создания моего проекта приложения, в котором находится ошибка UserControl. После того, как я нажму, чтобы очистить проект, дизайнер может отобразить весь материал (но, t очищайте проект каждый раз, прежде чем я вношу какие-либо изменения, поскольку здание требует времени)
Ответы
Ответ 1
Возможно, файл управления .g.cs или .g.i.cs поврежден. Попробуйте очистить, закрыть визуальную студию и перезапустить ее. Я думаю, что это помогло мне в нескольких случаях, особенно когда я копирую элементы управления пасты из одного решения в другое.
Ответ 2
Просто удалите подпапки в
%LOCALAPPDATA%\Microsoft\VisualStudio\12.0\Designer\ShadowCache
Ответ 3
Если вы реорганизуете UserControl в проект нижнего уровня, который ранее указывал UserControl, вы увидите эту ошибку.
Удаление ссылки на сборку из пространства имен устраняет проблему.
<UserControl xmlns:ui="clr-namespace:MyCompany.Core.UI;assembly=MyCompany.Core.UI"
должен быть
<UserControl xmlns:ui="clr-namespace:MyCompany.Core.UI"
Дизайнер недостаточно умен, чтобы выделить это.
Ответ 4
Я столкнулся с одной и той же проблемой, скомпилировал и работал нормально, но редактор XAML/Designer жаловался. В моем случае я нашел решение состоять в том, что мой пользовательский элемент управления был объявлен в пространстве имен в XAML (x: Class= "myNamespace.myUserControl" ), но не в коде позади. Добавление декларации пространства имен в исправленном мной коде.
Ответ 5
Существует возможность отладки Visual Studio Designer во второй подключенной Visual Studio.
Подробнее см. Устранение неполадок и отладка ошибок режима проектирования Visual Studio.
Ответ 6
Чтобы отобразить UserControl, разработчику необходимо создать экземпляр пользовательского элемента управления. Найдите возможные исключения из Null Reference.
В моем случае пользовательский элемент управления имел NRE из-за того, что зависимость не была введена. Я добавил обработку для NRE и не более проблем.