[c#] El tipo o el nombre del espacio de nombres no existe


7 Answers

Tuve un problema con System.Linq al no ser reconocido. La declaración using tenía un rojo ondulante, etc. La forma en que lo resolví fue cambiar mi sitio web a target dot 3.5, luego volver al marco original orientado (4.0 en mi caso).

Question

Tengo un proyecto de servicio de datos WCF creado con Visual Studio 2010, que funcionaba bien. De repente, no compiló más. Me estaba dando mensajes como:

Error 7 El tipo o el nombre del espacio de nombres 'Servicios' no existe en el espacio de nombres 'System.Data' (¿falta una referencia de ensamblado?) C: \ U ... s \ Visual Studio 2010 \ Projects ... \ DataService. cs ...

Error 8 El tipo o el nombre del espacio de nombres 'Linq' no existe en el espacio de nombres 'Sistema' (¿falta una referencia de ensamblado?) DependencyResolver.cs 3 14

Error 10 El tipo o el nombre del espacio de nombres 'Web' no existe en el espacio de nombres 'System.ServiceModel' (¿falta una referencia de ensamblado?)

Error 12 No se pudo encontrar el tipo o el nombre del espacio de nombres 'DataService' (¿falta una directiva using o una referencia de ensamblado?)

¿Cómo puedo arreglarlo?




Tuve el mismo problema e intenté todo lo anterior sin éxito, luego descubrí cuál era:

Creé una carpeta llamada "Sistema" en uno de mis proyectos y luego creé una clase en ella. El problema parece provenir de tener un espacio de nombres llamado "Sistema" cuando se crea el archivo .cs, incluso si está en un espacio de nombres de "MyProject.System".

Mirando hacia atrás, puedo entender por qué esto causaría problemas. Realmente me sorprendió al principio ya que los mensajes de error inicialmente no parecen estar relacionados con el problema.




Y si todo lo demás falla, como asegurarse de que los marcos de destino son los mismos, y está tratando con una biblioteca de clases de WPF en VS2010, simplemente reinicie Visual Studio. Eso lo hizo por mí.




En mi caso, el problema estaba sucediendo porque la clase que creé tenía un espacio de nombres que interfería con las clases existentes. La nueva clase A tenía el espacio de nombres zz.yy.xx (por error). Las referencias a objetos en otro espacio de nombres yy.xx no se estaban compilando en la clase A u otras clases cuyo espacio de nombres era zz.

Cambié el espacio de nombres de la clase A a yy.xx, que debería haber sido, y comenzó a funcionar.




En mi caso no hubo cambios en los proyectos, simplemente se detuvo para compilar y con "tipo o nombre de espacio de nombres XXX no existe" y en la clase denunciante en sí intellisense para que XXX namespace / class funcione bien. ¡El problema estaba en las referencias!

Pasos para reproducir:

  1. La solución tiene ProjectA, ProjectB. ProjectA hace referencia a log4net de terceros y está marcado Copy local: true . ProjectB hace referencia a ProjectA y no tiene referencia a log4net. La solución compila bien.

  2. Cambio en el Proyecto A: propiedad de referencia para log4net a Copy local: false .

  3. Limpie las carpetas bin y obj.
  4. Cuando compila, ProjectA compila, pero ProjectB se queja de no encontrar el espacio de nombres de ProjectA.

This is because ProjectB carpeta This is because ProjectB bin no tiene una biblioteca de terceros (log4net in my case)!

En este caso, la solución sería:

  1. asegúrese de que las referencias de las bibliotecas de terceros estén configuradas en Copy local: true o
  2. agregar ruta a dichas bibliotecas en las propiedades del proyecto en la ruta de referencia.



Verifique que su marco de destino tenga las mismas versiones de .NET. Tuve el mismo problema y mi clase .NET era 3.5 y la solución web tenía 4.5. Sincronicé esos, y luego funcionó :)




Experimenté los mismos errores. Después de descubrir que mi proyecto tenía el nombre de ensamblado equivocado (copié archivos de un proyecto diferente y los espacios de nombres se confundieron un poco) y lo cambié de nuevo, el proyecto compiló muy bien.




Recientemente necesité hacer una Restauración del sistema y causó que varios de mis archivos cambiaran / desaparecieran en los que había estado trabajando desde la restauración. Algunos de esos fueron archivos DLL. Usé Source Control para recuperar todo el proyecto, pero todavía tenía un problema similar al anterior. Encontré esta respuesta que describía que podría necesitar eliminar una DLL y leerla para corregir los errores. Este fue el caso en mi escenario.

Eliminar WebMatrix.WebData y leerlo, así como agregar en WebMatrix.Data solucionó mi error de The type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ...




Related