El nombre “XYZ” no existe en el espacio de nombres “clr-namespace: ABC”

Estaba trabajando en la creación de algunas extensiones de marcado y comencé a tener comportamientos VS muy extraños. He extraído y identificado el problema en la solución por separado. El problema es que VS no puede crear un objeto CLR en XAML.

Aquí está:

Ver:

      

Código detrás:

 using System.Windows; namespace WpfApplication4 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } } 

Clase de perro:

 namespace WpfApplication4 { public class Dog { } } 

App.Xaml (sin código en App.Xaml.cs):

     

Configuración del proyecto

Excepción que estoy obteniendo:

 Error 1 The name "Dog" does not exist in the namespace "clr-namespace:WpfApplication4". \\hopr1\folders$\vxk\Documents\Visual Studio 2012\Projects\WpfApplication4\MainWindow.xaml 6 9 WpfApplication4 

Puedo ejecutar la solución, pero el diseñador falla con el error “Marcado inválido” ¿Alguna idea?

Editar

Estoy ejecutando VS 2012 Actualización 2 El mismo trabajo de solución en VS 2012 Actualización 1

Su solución se ejecuta en un recurso compartido de red. Las aplicaciones .Net (y Visual Studio) pueden tener problemas de permiso / acceso cuando se ejecutan en un recurso compartido de red.

Copie su solución en un disco local (con plena confianza) y debería estar bien.

Es posible hacer funcionar una unidad de red con total confianza, puedes encontrar respuestas para esto en StackOverflow y otros lugares, pero en mi experiencia sigo encontrando obstáculos cuando hago esto, así que trata de evitarlo a menos que sea absolutamente crítico para el problema a mano.

Por ejemplo, esta pregunta proporciona instrucciones sobre cómo hacer esto:

Dé FullTrust a UNC share para Visual Studio 2012 y .Net 4.0

Solo he intentado esto con VS2010, así que (como se indica en el enlace) es posible que disfrutes más con 2012.

Para cualquiera que se encuentre con esto ahora, ANTES DE HACER LO SIGUIENTE … si está seguro de que sus clases / espacios de nombres son correctos y la reconstrucción no ha resuelto su problema:

Intente reiniciar Visual Studio

¡Eso es!

Esto parece ser un error con Visual Studio 2012 (también parece afectar a todas las demás versiones que admiten el desarrollo XAML)


Actualización: si reiniciar Visual Studio no funciona, reinicie toda la PC.

Actualización: como se menciona en los comentarios de @Dunk, si reiniciar Visual Studio no funciona, intente eliminar el archivo .suo

Experimenté el mismo problema, pero mis archivos se almacenan localmente. Mi IValueConverter reside en un ensamblaje diferente de la vista que lo usa. Aunque VS2013 IntelliSense sugirió lo siguiente, no funcionaba:

 xmlns:conv="clr-namespace:MySharedAssembly.Converters" 

Después de que agregué explícitamente el ensamblado al final, funcionó:

 xmlns:conv="clr-namespace:MySharedAssembly.Converters;assembly=MySharedAssembly" 

Me quedé con este error durante horas. Las asambleas y los espacios de nombres eran correctos, las clases y las referencias también eran correctas. Comstack y ejecuta bien, solo el diseñador tenía problemas conmigo de alguna manera. Lo único que funcionó

  1. para propósitos de diseño desde x64 a x86
  2. para ejecutar y depurar volver a x64

Estoy usando una fiesta portátil en 3D.library que tenía solo en la versión x64.

Solución DLL descargada

  1. Desbloquee el archivo .dll
    • Haga clic derecho y seleccione propiedades
    • Desbloquearlo en la pestaña “General” (ver imagen)
  2. Asegúrese de que VS revalide el XAML (quizás reiniciándolo)

enter image description here

Todavía sucede en VS 2015. Saqué SomeConverter en la aplicación.xaml:

    

Strg-Shift-B
Vuelva a colocarlo – y funcionó.

Crea un enlace simbólico al recurso compartido de red en tu disco local.

Vaya a la línea de comandos y escriba mklink / DC: \ LOCALFOLDER \ YOURNETWORKPATH

Luego abre los proyectos desde tu carpeta local y todos los problemas desaparecerán. Ahora todos los archivos seguirán en tu red compartida. 🙂

Estaba comenzando un nuevo proyecto y teniendo este problema. Ninguna de las soluciones enumeradas aquí funcionó para mí, incluida la eliminación del archivo suo, la descarga / recarga del proyecto, el reinicio de VS, etc.

Lo que funcionó para mí fue que, debido a que este era un proyecto nuevo, aún no lo había construido. Quité el elemento Window.DataContext al portapapeles, construí el proyecto una vez (shift-ctrl-b), luego volví a agregar el elemento y funcionó de inmediato.

Antes de intentar una solución extensa, intente lo siguiente:

Tenía exactamente el mismo problema, cerré la ventana / formulario que causaba el error y luego ejecuté el proyecto,

El error pareció desaparecer una vez que el proyecto se ejecutó correctamente y no volvió a funcionar.

Espero que esto ayude a cualquiera que busque una solución rápida.

Obtuve el mismo error en Visual Studio 2015 y logré que el diseñador funcione desactivando el botón “Deshabilitar código de proyecto”.

Captura de pantalla al botón Diseñador

Esto me ha estado molestando durante los años 2008, 10, 12, 13.

Cuando esto sucede (y sí, estoy trabajando en un recurso compartido de red, no puedo evitarlo), cierro VS, cambio el nombre de la CARPETA y vuelvo a abrir el proyecto. 9 veces de cada 10, esto funciona. Por un momento.

Para cualquier otra persona atrapada.

Lo que funcionó para mí fue cambiar el alias del espacio de nombres de local a cualquier otra cosa.

 xmlns:local="clr-namespace:ExampleNameSpace.Folder" />      

a

 xmlns:blah="clr-namespace:ExampleNameSpace.Folder" />      

¡Espero que esto ayude!

Tenía el mismo problema. Lo que lo solucionó fue cuando me di cuenta de que la clase en cuestión estaba marcada como internal :

 internal class MyClass { } 

Después de cambiarlo a public , el diseñador pudo comstackr el XAML correctamente.

Lo que funcionó para mí es cambiar MOVE a XCOPY en Post Build en las project properties del project properties y luego re-build el proyecto. El diseñador puede querer el dll en la carpeta de salida del proyecto. Estoy usando vs 2015

Después de reiniciar Visual Studio, recibí un error de IntelliSense que me indicó la dirección correcta.

Como ‘Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Semantics.Metadata.ReflectionTypeNode’ se implementa en el mismo ensamblado, debe establecer el atributo x: Name en lugar de Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Semantics.Metadata. ReflectionPropertyNode attribute.

Así que cambié esto:

  

A esto:

  

Y luego funcionó. Entonces, ¿eso nos da qué? 42 posibles causas? Irreal…

También tengo un proyecto en una red compartida y este error apareció inesperadamente. Intenté todas las sugerencias anteriores, incluida la copia del proyecto en un disco local, la limpieza, la reconstrucción y la apertura y cierre de VS. Ninguno de estos resolvió el problema.

Lo que funcionó para mí fue simplemente borrar la referencia del espacio de nombres a la carpeta viewmodels (xlmns: vm = “clr-namespace: Myproj.ViewModel”).

Agregué el tipo a mi xaml (DataTemplate DataType = “{x: Type vm: myviewmodel}”). Visual Studio luego detectó que faltaba el espacio de nombres e hice clic en el indicador para agregar el espacio de nombres.

Declararlo en un diccionario de recursos funcionó para mí.

    

El problema parece ser que el analizador se caga cuando ve una extensión de marcado como Converter={c:IsNullConverter}}" , pero está bien con: Converter={StaticResource IsNullConverter} . Creo que ahí es donde está el problema.

Windows 10, VS 2013

Tuve 3 errores en el proyecto y me centré en este error relacionado con el ObjectDataProvider. Descubrí que este error no se puede resolver si el proyecto no se puede construir debido a otros errores. Tenía un par de otros controladores de eventos cuyo código había sido eliminado. También necesitaba eliminar el código que intentaba vincular los controladores a los controles. Luego el proyecto pudo construir y ver que la clase a la que estaba tratando de hacer referencia desde ObjectDataProvider estaba disponible.

El nombre “XYZ” no existe en el espacio de nombres “clr-namespace: ABC”

SOLUCIONADO

comprobar si la función que desea invocar / la clase está presente en el espacio de nombres

Ejemplo correcto:

Archivo .XAML

   xmlns:m="clr-namespace:namespace1" Title="MainWindow" Height="350" Width="525">      

  ItemsSource="{Binding Source={StaticResource Runni}}" />   

// StringData es el nombre de la clase en xaml.cs y GetString es la función

Archivo .XAML.CS

  namespace namespace1 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } // the class StringData is defined in namespace namespace 1 public class StringData { ObservableCollection lst = new ObservableCollection(); public StringData() { lst.Add("Abhishek"); lst.Add("Abhijit"); lst.Add("Kunal"); lst.Add("Sheo"); } public ObservableCollection GetStrings() { return lst; } } } 

Mal ejemplo

Archivo .XAML

   xmlns:m="clr-namespace:namespace1" Title="MainWindow" Height="350" Width="525">      

  ItemsSource="{Binding Source={StaticResource Runni}}" />   

.XAML.CS

 namespace namespace1 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } //The StringData is defined in the class mainWindow not in namespace namespace1 public class StringData { ObservableCollection lst = new ObservableCollection(); public StringData() { lst.Add("Abhishek"); lst.Add("Abhijit"); lst.Add("Kunal"); lst.Add("Sheo"); } public ObservableCollection GetStrings() { return lst; } } } } 

En mi caso, este error fue causado por tener ensamblados firmados con ‘solo señal de retraso’ habilitado. La solución fue ejecutar el comando sn -Vr * desde la consola del desarrollador (como administrador). Esto registra el conjunto para omisión de verificación. Y luego reinicie Visual Studio.

Esto puede deberse a la configuración de Liberación. El diseñador debe usarse desde la configuración de depuración.