.net Visual Studio侦测到不存在的相依性循环

new9mtju  于 2022-11-26  发布在  .NET
关注(0)|答案(1)|浏览(221)

所以我在为我的系统编写测试。我的系统在一个干净的架构的上下文中由不同的层组成。我的核心项目包含服务,这些服务有测试。当我开始编写这些测试时,一切都很顺利。但是当我看到测试项目不在指定的tests文件夹中时,我移动了它。在这之后Visual Studio开始谈论一个周期。首先让我来阐明一些应该有这些周期的项目;根据Visual Studio的功能,

  • API项目(API -〉核心)
  • 核心(核心-〉共享)
  • API测试(API测试-〉API)
  • 核心测试(核心测试-〉核心)

以上几点是根据我实现的内容以及解决方案资源管理器显示项目依赖项的方式而定的。Visual Studio给出了以下异常:

但是,Core项目中没有引用Api. Tests的内容。

下面是Core.csproj文件。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\Shared\Shared.csproj" />
  </ItemGroup>

</Project>

API项目参考:

<ItemGroup>
    <ProjectReference Include="..\Core\Core.csproj" />
    <ProjectReference Include="..\Infrastructure\Infrastructure.csproj" />
  </ItemGroup>

API.测试项目参考:

<ItemGroup>
    <ProjectReference Include="..\..\src\API\API.csproj" />
  </ItemGroup>

是什么导致了这个循环,我是否遗漏了什么,是否需要更多的信息?

lstz6jyr

lstz6jyr1#

所以我“修复”了这个问题。但是我不能确定确切的原因。但是,我可以告诉发生了什么,我改变了什么。错误可能是@ProgrammingLlama指出的,不确定。
根据VS,我在tests文件夹中创建了一个测试项目。这个项目被命名为Core.Tests。当我检查项目目录时,我注意到了一些错误。Core.Tests没有放在相应的tests文件夹中。所以我很自然地将它移到了tests文件夹中。
一旦项目被转移,例外就出现了。关于一个实际上并不存在的循环的例外。还有另外两个项目:基础设施共享这两个项目完全随机地引用了API项目(在我选择的架构中这毫无意义)。我自己也没有这样做。所以有些东西--在评论中有一点怀疑--出了问题。我通过删除这些API引用修复了它。
我想我称之为pull的唯一结论是,当这种情况发生时,只需检查项目中是否有错误的引用(比如不属于那里的引用)。
我基本上通过检查项目引用来修复它,然后继续修复它们。现在一切又正常了。

相关问题