For*_*a12 15 c# visual-studio-project asp.net-core
我的项目没有在同一解决方案中添加对另一个项目的引用。
我为一个网站创建了一个项目,并将程序的所有部分抽象为 .Net 类库(我的模型在不同的类库中,接口在不同的类库中,业务逻辑在不同的类库中)。我正确引用了所有项目,并且还尝试创建一个名为 EntityRepository 的东西,最初我将 DbContext 保留在其中。但由于我想使用 Microsoft 的 Identity 实现,然后将逻辑搭建起来,我无法从其他项目中找到搭建脚手架时所需的 DbContext,因此我不得不将该项目排除在解决方案之外。通常,当您创建项目并选择单用户身份验证时,.Net core 会在项目中添加一个初始 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?
Run Code Online (Sandbox Code Playgroud)
小智 19
首先,我想对上面回答的人表示感谢,因为他们走上了解决这个问题的正确轨道。就我而言,该问题是由未跟踪文件引起的,并通过运行
* git clean DocumentationNU1108解决了git clean -fxd
小智 8
我知道这已经很旧了,但我也想在这里添加。
我遇到了与 Sebastian Widz 回答相同的情况,但真正对我有用的是打开有问题的项目的属性。
这重新加载了项目文件/依赖项并修复了“检测到周期”问题。
我们在 Visual Studio 2022 上也遇到了这个问题,项目的名称“包含”在其他项目命名空间中。
我们的解决方案似乎是取消选中 VS 中的某些“预览功能”。删除Options > Environment > Preview Features这些检查。
考虑创建一个项目来包含您的 EntityRepository,例如CBTSoftware.Data,并从您的服务项目添加对它的引用:
CBTSoftware.Services -> CBTSoftware.Data
Run Code Online (Sandbox Code Playgroud)
然后,您可以继续从 Web 项目引用您的服务项目:
CBTSoftware.Web.Host -> CBTSoftware.Services
Run Code Online (Sandbox Code Playgroud)
您仍然可以在Startup.cs文件中配置 EntityRepository,因为它会间接了解您的CBTSoftware.Data项目。只需确保从服务项目中删除对 Web 项目的引用,因为这会创建一个循环。
| 归档时间: |
|
| 查看次数: |
20805 次 |
| 最近记录: |