Tengo una solución que contiene un sitio web y una biblioteca de clases en Visual Studio 2008.
Luego tengo otro proyecto de sitio web fuera de la solución que necesita hacer referencia a la biblioteca de clases. Hago clic con el botón derecho en la carpeta Bin o Proyecto y selecciono Agregar referencia, luego selecciono mi Proyecto de biblioteca de clases, agrega las 15 o más DLL que la biblioteca de clases necesita a la carpeta bin de sitios web, pero ninguno de los archivos .cs reconoce las declaraciones de uso.
using MyLibrary.MyFolder;
Dice que no puede resolverlo, y ReSharper simplemente dice que se puede eliminar de forma segura ya que no se está utilizando.
ReSharper puede reconocer que necesita la referencia y sugiere que "haga referencia a MyLibrary y use MyFolder". No estoy seguro de por qué sugiere que agregue una referencia que ya tengo. Cuando sigo la sugerencia, aparece el error
"No se pudo hacer referencia al módulo. Probablemente, la referencia producirá dependencias circulares entre proyectos".
Intenté ir a las páginas de propiedades de los sitios web y eliminar todas las referencias y volver a agregarlas, pero me dan los mismos errores. ¿Alguna idea de por qué esto no funciona?
fuente
Respuestas:
Además, verifique que los proyectos de la nueva solución se ejecuten en un marco compatible con el proyecto que está tratando de incluir. Estaba tratando de incluir una referencia a un proyecto 4.0 en un proyecto 3.5.
fuente
Encontré cómo solucionar este problema (al menos para mí). Por qué funcionó, no estoy seguro, pero funcionó. (Intenté con un segundo sitio web que tenía el mismo problema y la siguiente solución también funcionó).
Probé la limpieza normal de los proyectos y la reconstrucción, cerré todas mis instancias de Visual Studio y las reinicié, incluso intenté reiniciar mi computadora.
Lo que realmente funcionó fue abrir el proyecto en Visual Studio, cerrar todas las pestañas abiertas y luego cerrarlo.
Antes había dejado las pestañas abiertas porque pensaba que no importaba (y casi nunca cierro las pestañas que estoy usando).
fuente
Una posibilidad es que la versión de .NET Framework de destino de la biblioteca de clases sea superior a la del proyecto.
fuente
Tuve un problema similar, ¿todas mis referencias serán molestadas por Resharper? La solución que funcionó para mí es borrar la caché de Resharper y luego reiniciar VS
herramientas-> opciones-> resharper-> opciones-> general-> haga clic en el botón borrar cachés y reinicie VS
fuente
Tuve problemas similares en los que VS a veces se compilaba y otras no. Después de algunas búsquedas e intentos, descubrí que tenía una referencia ambigua a una clase con el mismo nombre en diferentes bibliotecas ('FileManager'). El proyecto que no se compilaría fueron mis pruebas unitarias que hacen referencia a todos los módulos de mi solución. Hacer cumplir la referencia a un módulo específico resolvió las cosas para mí.
Mi punto es: en lugar de culpar a ReSharper o VS, puede ser una buena idea verificar si realmente no hay algún tipo de referencia circular de alguna manera. La mayoría de las veces, las clases con los mismos nombres en diferentes módulos pueden causar confusión y, a menudo, es un síntoma de un mal diseño (como en mi caso).
fuente
The type or namespace name 'A' does not exist in the namespace 'B'
. Tenga en cuenta que no aparecen advertencias para esto ...Esto suena como un problema similar con ReSharper:
http://www.jetbrains.net/devnet/thread/275827
Según un usuario en el hilo, forzar una compilación soluciona el problema (CTRL + Shift + B) después de la primera compilación.
Suena como un problema con ReSharper específicamente en su caso. ¿Ha intentado construir independientemente de las advertencias y posibles errores falsos?
fuente
Dado que ambos están en la misma solución, en lugar de agregar una referencia a la DLL, agregue una referencia al proyecto de la biblioteca de clases en sí (el cuadro de diálogo Agregar referencia tendrá una pestaña para esto).Ahh, es una solución diferente. Me perdí eso. ¿Qué tal si intenta en lugar de agregar una referencia al proyecto agregando una referencia a la DLL compilada de su biblioteca de clases? El cuadro de diálogo Agregar referencia tiene una pestaña Examinar que hace esto.
fuente
Después de confirmar que se estaba utilizando la misma versión de asp.net. Eliminé el proyecto. limpió la solución y volvió a agregar el proyecto. esto es lo que funcionó para mí.
fuente
Si está haciendo referencia a ensamblados para proyectos que están en la misma solución, agregue una referencia de proyecto (usando la pestaña "Proyectos") en lugar de buscar el dll en la carpeta \ bin \ Debug (o \ bin \ Release) (usando el Pestaña "Examinar"). Vea la captura de pantalla a continuación. Busque el archivo ensamblado / dll solo si se considera un ensamblado externo.
fuente
Eliminé * .csproj.user (archivo resharper) de mi proyecto, luego, cerré todas las pestañas y lo volví a abrir. Después de eso, pude compilar mi proyecto y no hubo advertencias de reajuste.
fuente
Tuve este problema. Me tomó siglos darme cuenta. Tenía gente sobre mi hombro para ayudar. Reconstruimos, limpiamos y reiniciamos Visual Studio y esto no lo solucionó. Eliminamos y volvimos a agregar las referencias ...
Todo en vano .... ¡Hasta!
La solución a mi problema fue que mi declaración de clase estaba mal escrita.
Antes de que empieces a juzgarme con dureza, permíteme explicarte por qué no fue estúpido, y también por qué este error podría ser cometido incluso por los programadores más inteligentes.
Dado que el error estaba al principio del nombre, no aparecía en la lista de clases de intellisense cuando comencé a escribir.
p.ej
Nombre de la clase:
Message.cs
Declaración:
public class Massage { //code here }
De un vistazo y en letra pequeña, Massage se ve idéntico a Message.
Al escribir M se enumeran demasiadas clases, así que escribí e, que no aparecía en la versión mal escrita, lo que daba la impresión de que el compilador no estaba recogiendo la clase.
fuente
Tuve un problema similar en VS 2010, al crear un proyecto de prueba para una aplicación MVC 2. Los síntomas fueron idénticos.
El mensaje de ReSharper fue algo engañoso. Por un momento, ignoré por completo ReSharper y lo hice de la "forma VS manual":
En esta etapa recibí un error de compilación: debería haber hecho referencia al
System.Web.Mvc
ensamblado en mi proyecto de prueba (suspiro). Agregar esta referencia hace que el proyecto se compile. Los problemas de ReSharper persisten, pero el ejecutor de pruebas de ReSharper funciona.Cuando reinicio VS, los errores de ReSharper también desaparecen. No estoy seguro de si es necesario reiniciar; simplemente cerrar el archivo .cs podría ser suficiente.
De ahora en adelante, cuando vea el mensaje ReSharper
Voy a leer
fuente
Otra posible solución que me funcionó:
Si tiene el Ensamblado A, que hace referencia al Ensamblado B, ambos hacen referencia a un ensamblado X que no es de proyecto (externo), y el código del Ensamblado B no reconocerá que ha hecho referencia a X, entonces intente los siguientes pasos en orden:
Aparentemente, VS no reconocerá una referencia a un ensamblado externo en un proyecto que es una dependencia de otro proyecto que ya hace referencia al externo. Al configurar las referencias nuevamente desde cero, supera esto. Es muy extraño.
fuente
Enfrenté este problema y lo resolví cerrando Visual Studio, reabriendo Visual Studio, limpiando y reconstruyendo la solución. Esto funcionó para mí.
fuente
Si usa TFS, realizar una Obtener la última (recursiva) no siempre funciona. En su lugar, fuerzo obtener la última versión haciendo clic en Control de fuente => Obtener versión específica y luego haciendo clic en ambos cuadros. Esto tiende a funcionar.
Si aún no funciona, eliminar el archivo suo (que generalmente se encuentra en el mismo lugar que la solución) obliga a Visual Studio a obtener todos los archivos de la fuente (y posteriormente reconstruir el archivo suo).
Si eso no funciona, intente cerrar todos sus archivos abiertos y cerrar Visual Studio. La próxima vez que abra Visual Studio, debería solucionarse. Hay un error de reajuste que se resuelve de esta manera.
fuente
Recientemente me había encontrado con un problema similar. Estoy trabajando en Visual Studio 2015 con Resharper Ultimate 2016.1.2. Estaba tratando de agregar una nueva clase a mi base de código mientras intentaba hacer referencia a una clase de otro ensamblado, pero Resharper arrojaría un error para ese paquete.
Con la ayuda de un compañero de trabajo, descubrí que la clase a la que se hace referencia existía en el espacio de nombres global y no era accesible desde la nueva clase, ya que estaba oculta por otra entidad del mismo nombre que existía en el espacio de nombres actual.
Agregar una palabra clave 'global ::' antes del espacio de nombres requerido me ayudó a hacer referencia a la clase que estaba buscando. Se pueden encontrar más detalles sobre esto en la página que se enumera a continuación:
https://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx
fuente
Si ambos proyectos están contenidos dentro de la misma solución, será más apropiado si agrega la referencia para el proyecto que necesita, no su dll compilado.
fuente
Desafortunadamente, lo único que funcionó para mí fue eliminar por completo y recrear el proyecto de biblioteca de clases, después de haber copiado temporalmente los archivos de clase en otro lugar. Solo entonces el proyecto web ASP.Net reconocería las
using
declaraciones que se referían al proyecto de biblioteca de clases. Esto fue con Visual Studio 2010, no usando ReSharper.fuente
Tuve un problema similar. Lo que funcionó para mí es que había agregado una biblioteca de clases incorrecta de Visual Studio . Agregué usando la función de búsqueda de Visual Studio.
Lo que tenía que hacer era Agregar nuevo proyecto> Visual C #> Biblioteca de clases . Y esta biblioteca de clases recién agregada es la correcta y ahora se puede agregar como referencia a cualquier proyecto.
fuente
Es posible que olvide agregar una referencia a la biblioteca de clases que necesitaba importar.
Haga clic con el botón derecho en la biblioteca de clases en la que desea importar (que contiene múltiples bibliotecas de clases importadas), -> Agregar-> Referencia (Seleccione Proyectos-> Solución-> seleccione la biblioteca de clases desde la que desea importar-> Aceptar)
fuente