【发布时间】:2019-09-08 22:33:45
【问题描述】:
我的项目没有在同一个解决方案中添加对另一个的引用。
我为网站创建了一个项目,并将程序的所有部分抽象为 .Net 类库(我的模型在不同的类库中,接口在不同的类库中,业务逻辑在不同的类库中)。我正确地引用了所有项目,并且我还尝试创建我称为 EntityRepository 的东西,我最初将 DbContext 保存在里面。但是由于我想使用 Microsoft 的 Identity 实现然后将逻辑搭建出来,我无法从另一个项目中找到搭建脚手架时所需的 DbContext,因此我不得不将该项目排除在解决方案之外。通常,当您创建项目并选择单用户身份验证时,.Net 核心会在项目中添加一个初始 DbContext。因此,在将 AspNetCore Identity 的实现搭建到我的项目中时,我必须选择 DbContext。因此,我的业务逻辑分为两个方面。另一个逻辑在同一个解决方案的另一个项目中,身份和身份验证在启动项目中,即 Web 应用程序。当我尝试将实现业务逻辑的服务从另一个项目调用到 Web 项目中时,它无法添加对服务项目的引用。我现在手动添加了参考。之后我现在看到一个错误写了
Detail Error:
Severity Code Description Project File Line Suppression State
Error NU1108 Cycle detected.
CBTSoftware.Web.Host -> CBTSoftware.Services -> CBTSoftware.Web.Host. CBTSoftware.Web.Host C:\Users\Tavershima\source\repos\CBTSoftware\CBTSoftware.Web.Host\CBTSoftware.Web.Host.csproj 1```
How can I resolve this?
【问题讨论】:
-
您是如何手动添加引用的?当您无法添加参考时,“通常”视觉工作室已检测到您将创建一个依赖循环。检查
CBTSoftware.Services和CBTSoftware.Web.Host之间的用法,并选择一个项目应该引用另一个的方向。您不能在两个方向都有参考。 -
ApplicationDbContext 位于 Web.Host 项目中,所以我在 services 项目中调用它来完成所有的数据库工作。现在我想将所有这些服务从 Services 项目调用到 Web.Host 项目中的剃须刀页面。
-
我通过编辑csproj文件手动添加了参考
标签: c# asp.net-core visual-studio-project