WPF: El diseñador de VS2012 muestra "El componente ''XXX'' no tiene un recurso identificado por el URI YYY"
visual-studio designer (6)
Como sugiere el título, este error lo lanza el diseñador, lo que significa que el diseñador no puede mostrar mi UserControl correctamente, lo que a su vez significa que no puedo navegar sin problemas de un elemento a otro en este UserControl para realizar modificaciones. Realmente molesto.
XXX es el nombre de mi UserControl, mientras que URI YYY es en realidad la ruta de XXX. Así que no sé, entiendo que no puede encontrarse a sí mismo como recurso. Busqué en Google este error, pero la mayoría de ellos sucedió en el tiempo de ejecución. En mi caso no sucede en absoluto cuando lo ejecuto. La descripción de este error realmente no es lo suficientemente explicativa, porque no estoy seguro de quién en el CLR está cargando el archivo como un recurso.
Otra cosa que vale la pena mencionar es que este error solo ocurre después de que compilo el proyecto de mi aplicación, en el que reside el error UserControl. Después de hacer clic para limpiar el proyecto, el diseñador puede mostrar todo el contenido (pero obviamente no puedo limpiar el proyecto). proyecto cada vez antes de hacer cualquier cambio, ya que el edificio lleva tiempo)
Es posible que el archivo .g.cs o .gics del control esté dañado. Intenta limpiar, cierra Visual Studio y reinícialo. Creo que eso me ayudó en varios casos, especialmente cuando copio pegar controles de una solución a otra.
Existe la posibilidad de depurar Visual Studio Designer en el segundo Visual Studio adjunto.
Consulte Cómo solucionar problemas y depurar los errores del modo de diseño de Visual Studio para obtener más información.
Me encontré con el mismo problema, se compiló y funcionó bien, pero el editor / diseñador XAML se quejó. En mi caso, encontré que la solución era que mi control de usuario estaba declarado dentro de un espacio de nombres en el XAML (x: Class = "myNamespace.myUserControl") pero no en el código que se encuentra detrás. La adición de la declaración de espacio de nombres en el código detrás resolvió mi problema.
Para mostrar el UserControl, el diseñador tiene que crear una instancia del control de usuario. Busque posibles excepciones de referencia nulas.
En mi caso, el control del usuario tenía una NRE debido a que no se había inyectado una dependencia. Agregué el manejo de la NRE y no más problemas.
Si refactoriza un UserControl en un proyecto de nivel inferior al que el UserControl hacía referencia anteriormente, verá este error.
La eliminación de la referencia de ensamblaje del espacio de nombres soluciona el problema.
<UserControl xmlns:ui="clr-namespace:MyCompany.Core.UI;assembly=MyCompany.Core.UI"
debiera ser
<UserControl xmlns:ui="clr-namespace:MyCompany.Core.UI"
El diseñador no es lo suficientemente inteligente como para resaltar esto.
Simplemente borre las subcarpetas en
%LOCALAPPDATA%/Microsoft/VisualStudio/12.0/Designer/ShadowCache