c# visual - Tipo o nombre de espacio de nombres no existe




studio net (15)

Tengo un proyecto de servicio de datos WCF construido con Visual Studio 2010, que estaba funcionando bien. De repente, ya no se compilaba. Me estaba dando mensajes como:

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

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

Error 10 El tipo o nombre de 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 nombre de espacio de nombres 'DataService' (¿falta una directiva de uso o una referencia de ensamblado?)

¿Cómo puedo arreglarlo?


Answers

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. Los sincronicé, y luego funcionó :)


Recibí un mensaje de error muy similar que fue causado por haber hecho inadvertidamente un duplicado de una clase en otro proyecto de mi solución. Eliminar el duplicado solucionado el problema


En mi caso, el problema estaba ocurriendo porque la clase que creé tenía un espacio de nombres que interfería con las clases existentes. La nueva clase A tenía un 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.


Enfrenté el mismo problema con un sitio ASP.NET MVC cuando intenté usar LINQ to SQL . Arreglo el problema por:

Explorador de soluciones -> Referencias -> Haga clic derecho en System.Data.Linq -> Copiar Local (Verdadero)


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 WPF en VS2010, simplemente reinicie Visual Studio. Eso lo hizo por mí.


Descubrí que esto se debe a que tengo el mismo nombre de espacio de nombres que nombre de clase ( MyWorld.MyWorld = Namespace.ClassName ).

Cambie su espacio de nombres a un nombre que no sea el mismo nombre que su clase y esto se compilará.

Source


En mi caso, no hubo ningún cambio en los proyectos, simplemente se detuvo para compilar y con "el tipo o el nombre del espacio de nombres XXX no existe" y en la clase reclamante intellisense para ese espacio de nombres XXX / clase funciona bien. ¡El problema estaba en las referencias de hecho!

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 ProjectA: propiedad de referencia para log4net para Copy local: false .

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

This is because ProjectB carpeta bin de This is because ProjectB le falta 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.

He tenido el mismo problema y tuve que configurar el "Marco de objetivos" de todos los proyectos para que sea el mismo. Entonces se construyó bien. En el menú Proyecto, haga clic en Propiedades de ProjectName. Haga clic en la pestaña compilar. Haga clic en Opciones avanzadas de compilación. En el Marco de destino, elija el marco deseado.


He experimentado el mismo problema con System.Data.SQLite. La fuente del problema es que la dll que ha usado debe tener la misma versión .NET con su proyecto.

Por ejemplo, si ha utilizado (en mi caso) SQLite para .NET 4.5, el objetivo de su plataforma también debería ser .NET 4.5.

Puede encontrar el destino de la plataforma por: Proyecto> (nombre del proyecto) Propiedades> Generar.


Tuve el mismo problema e intenté todo lo anterior sin ningún éxito, luego descubrí qué era:

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

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


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


Tuve un problema con System.Linq no siendo reconocido. La declaración de using tenía un ondulado rojo, etc. La forma en que lo resolví fue cambiar mi sitio web para apuntar a dotnet 3.5, luego volver al marco original (4.0 en mi caso).


PARA CUALQUIER PERSONA CON ARCHIVOS VINCULADOS: Tuve este problema y estaba usando Silverlight y el archivo ofensivo que estaba lanzando este error era un archivo vinculado.

El error del compilador me dijo que el error estaba ocurriendo en el proyecto en el que vivía el archivo. Terminó que el error NO estaba en ese proyecto, sino en el proyecto que contenía el archivo vinculado. A ese proyecto le faltaba una referencia.


Hace poco tuve que hacer una Restauración del sistema y causó que varios de mis archivos cambiaran o desaparecieran en los que había estado trabajando desde la restauración. Algunos de esos eran archivos DLL. Utilicé Source Control para recuperar todo el proyecto, pero aún tenía un problema similar al anterior. Encontré esta respuesta que describe que puede necesitar eliminar una DLL y leerla para corregir sus errores. Este fue el caso en mi escenario.

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


Para las referencias de COM / ActiveX, VS 2012 mostrará este error directamente en el uso de la declaración. Lo cual es bastante gracioso, ya que dice que puede faltar una declaración de uso.

Para resolver esto: registre la dll COM / ActiveX real incluso si está en el proyecto vecino y agregue una referencia a través del canal COM, no del canal del proyecto. Agregará Interop.ProjectName en lugar de ProjectName como referencia y esto solucionará este extraño error.





c# .net visual-studio-2010 visual-studio