vscode visual texto style studio editorconfig code alinear visual-studio visual-studio-2010 projects-and-solutions circular-dependency

visual-studio - visual - editorconfig vscode



No se puede agregar una referencia al proyecto debido a un error de dependencia circular (8)

En mi caso, copié un archivo de proyecto sin generar un nuevo ProjectGuid . Dado que Visual Studio identifica de manera única los proyectos que usan ProjectGuid , asumió que el proyecto intentaba hacer referencia a sí mismo.

Creé 2 proyectos ficticios en mi aplicación y los BAL y DAL . Cuando los construyo, se construyen con éxito. Si agrego una referencia a BAL al proyecto DAL , se agregó muy bien. Pero al agregar la referencia DAL al proyecto BAL , aparece el siguiente error:

No se pudo agregar una referencia a DAL. Agregar este proyecto como referencia causaría una dependencia circular.

¿Alguien puede ayudarme a resolver este error?


Eso causaría una dependencia circular. Lo que quizás quiera hacer en su lugar es tener un proyecto de aplicación principal, que haga referencia al BAL, y luego a los referenes de BAL DAL. El acceso a datos no debería necesitar hacer referencia a la lógica comercial.


Está implícito en el concepto de "capas" que las capas más altas dependen de las más bajas, y no al revés. Si 2 "capas" son mutuamente dependientes, entonces una no es más alta que la otra, no son capas en ningún sentido significativo, por lo que se puede considerar que están en la misma capa. El mismo principio básico se aplica a los componentes o módulos arquitectónicos, tal como lo exige Studio para las dependencias de proyectos. Si usa este principio, piense en sus proyectos como módulos de diseño en lugar de, por ejemplo, simplemente incluir todo en un solo proyecto, tendrá una base de código bien estructurada que le proporcionará muchos menos problemas a medida que aumente su tamaño.


Este problema se me ocurrió cuando estaba construyendo una aplicación WPF con varias capas, como capa de interfaz de repositorio, capa de servicio de repositorio, capa de servicio sql, capa de servicio de descanso y mi capa principal de interfaz de usuario de WPF.

  • Resolví este error. Noté que algunas capas se referían innecesariamente a otros proyectos. Eliminé esta referencia innecesaria.
  • Luego noté que parte de mi capa de servicio y capa de repositorio tenían mi proyecto de interfaz de usuario de WPF como referencia (proyecto My StartUp); esto es lo que estaba creando una referencia circular. Eliminé esto

=============================================== ======================

Conclusión: verifique la dependencia de referencia de cada proyecto y asegúrese de que no haya referencias innecesarias. Asegúrese de que las subcapas no hagan referencia al proyecto de inicio en la referencia.

Espero que haya sido útil.


Esto me pasó a mí. Tiene una dependencia circular, es decir, dos proyectos que se referencian entre sí. Necesitas hacer uno de ellos independiente del otro. Toma algo de tiempo y sucede tan rápido. Un segundo estaba felizmente codificando, y al siguiente tuve 45 errores como este. Solo tomó algo de tiempo, pero también mejora la estructura de su arquitectura / programa, lo que le ayuda a resolver las dependencias correctamente.


Para evitar esto, agregue la referencia navegando a la DLL de los proyectos una vez que se haya creado. No lo seleccione de la pestaña "Proyectos".


Solo puede hacer referencia de una manera; de lo contrario, obtendrá el error como usted dijo. Solo haz esto: elimina la referencia de tu DAL a tu BL y crea una nueva desde tu BL a tu DAL.


Esto es lo que necesita hacer:

  1. Haga clic con el botón derecho en el Proyecto DAL en el explorador de soluciones y seleccione Dependencias del proyecto en el menú contextual.

  2. Ahora verá una ventana que muestra las dependencias del proyecto DAL. Asegúrate de que BAL no esté marcado.

Ahora debería poder agregar su referencia ...

Espero que esto ayude. He tratado de mantenerlo lo más simple y directo posible.

Explicación:

Su DAL no debería poder acceder al BAL. Las dependencias de referencia de código deberían ser así:

Proyecto MVC -> BAL -> DAL

El proyecto MVC debe hacer referencia al BAL, el BAL debe hacer referencia al DAL. Configura tu proyecto así Haga que funcione y luego comprenderá mejor por qué esta configuración es mejor.

Dado:

  1. Datos = números brutos y cadenas
  2. Información = datos procesados ​​en algo significativo

Cosider lo siguiente: La interfaz de usuario debe obtener su información del BAL que podría componer sus datos en función del DAL.