Ne peut pas ajouter une référence de projet à cause d'une dépendance circulaire d'erreur
J'ai créé 2 dummy projets dans mon application et de leur nom de BAL
et DAL
. Quand je les construire, ils construisent avec succès. Si j'ajoute une référence à BAL
à la DAL
projet, il a ajouté joliment. Mais lors de l'ajout du DAL
référence à la BAL
projet, j'obtiens l'erreur suivante:
Une référence à DAL n'a pas pu être ajouté. L'ajout de ce projet comme une référence serait la cause d'une dépendance circulaire.
Quelqu'un peut-il m'aider à résoudre cette erreur?
- Juste essayer quelques-uns des meilleurs entrées dans une rapide recherche sur Google. en.wikipedia.org/wiki/Circular_dependency. Bonne explication dans une autre question sur DONC à stackoverflow.com/questions/308915/...
Vous devez vous connecter pour publier un commentaire.
Voici ce que vous devez faire:
Clic droit sur le DAL Projet dans l'explorateur de solutions et sélectionnez les dépendances d'un Projet dans le menu contextuel.
Maintenant, vous pouvez voir une fenêtre qui montre les dépendances du projet de la DAL Projet. Assurez-vous que le BAL n'est pas cochée.
Maintenant, vous devriez être en mesure d'ajouter votre référence...
J'espère que cette aide, j'ai essayé de rester aussi simple et direct que possible.
Explication:
Votre DAL ne devrait pas être en mesure d'accéder au BAL. Votre code de référence de dépendances doit être comme ceci:
Projet MVC -> BAL -> DAL
Le projet MVC devrait référence le BAL, le BAL devrait faire référence à la DAL. Mettre en place votre projet de ce genre. Faire fonctionner et puis vous comprendrez mieux pourquoi cette configuration, c'est mieux.
Donné:
Cosider suivantes:
L'INTERFACE utilisateur doit obtenir son informations de la BAL ce qui pourrait être en mesure de composer c'est données basé sur le DAL.
Vous ne pouvez référencer dans un sens, sinon vous obtenez le message d'erreur comme vous l'avez dit. Viens de le faire: supprimer la référence à partir de votre DAL de votre BL et de faire une nouvelle à partir de votre BL à votre DAL!
Il est implicite dans le concept de "couches" que les couches supérieures dépendent bas, et non pas l'inverse. Si 2 "couches" sont mutuellement dépendants, alors on n'est pas plus élevé que les autres, ils ne sont pas des calques dans tout les sens, et peut donc être considéré comme étant dans la même couche. Le même principe vaut pour l'architecture des composants ou des modules, qui sont mises en application par le Studio pour les dépendances du projet. Si vous utilisez ce principe - pensez à vos projets de la conception des modules plutôt que, par exemple, juste jeter le tout dans un seul projet, vous aurez bien structuré base de code qui va vous donner beaucoup moins de problèmes à mesure qu'il grandit en taille.
Qui serait la cause d'une dépendance circulaire. Ce que vous peut-être est préférable d'avoir une application principale du projet, qui fait référence à la BAL, et puis BAL referenes DAL.
L'accès aux données ne devrait pas besoin de faire référence à une logique d'entreprise.
Ce qui s'est passé pour moi. Vous avez une dépendance circulaire, c'est à dire deux projets à la fois le référencement uns des autres. Vous avez besoin de faire l'un d'eux indépendante de l'autre. Prend un peu de temps et il arrive donc rapide. Une seconde, j'ai été heureux de codage, et le lendemain j'ai eu 45 erreurs de ce type. A juste pris un certain temps, mais il rend votre architecture/structure du programme mieux aussi, pour vous aider à trier correctement les dépendances.
Dans mon cas, j'ai copié un fichier de projet sans générer une nouvelle
ProjectGuid
. Depuis Visual Studio identifie des projets à l'aide de laProjectGuid
, il a assumé le projet a été d'essayer de référence lui-même.Ce problème m'est apparu quand j'ai été la construction d'une application WPF avec plusieurs couches comme référentiel de la couche d'interface, dépôt de la couche de service, le service sql couche, reste de la couche de service et mon principal WPF couche d'INTERFACE utilisateur.
inutilement référence à d'autres projets. J'ai enlevé ce inutile
de référence.
a mon WPF de l'INTERFACE comme référence(Mon projet de Démarrage); c'est
quelle a été la création de la circulaire de référence. J'ai enlevé ce.
========================================================================
Conclusion: Vérifiez chacun des projets de référence de la dépendance et assurez-vous il n'y a pas de référence inutiles. Assurez-vous que sous les couches ne sont pas de référencement projet de démarrage dans la référence.
Espère que j'ai été utile.
Pour contourner ce problème, ajouter la référence en parcourant les projets de DLL fois qu'il a été construit. Ne pas le sélectionner, à partir de l'onglet "Projets".