代码之家  ›  专栏  ›  技术社区  ›  mgw854

.NET核心单元测试引发FileLoadException

  •  0
  • mgw854  · 技术社区  · 7 年前

    我开发了三个图书馆。我们将它们称为A、B和C。B直接依赖于A,C直接依赖于B和A。它们都是多目标as。净标准1.1+和。NET Framework 4.5库。

    在库C中,我直接消耗A和B。尽管C及其单元测试构建得很好,但它们并没有正确运行。C的单元测试项目与库B完全相同。

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFrameworks>netcoreapp1.1;net452</TargetFrameworks>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
        <PackageReference Include="xunit" Version="2.2.0" />
        <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
      </ItemGroup>
    
      <ItemGroup>
        <ProjectReference Include="..\C\C.csproj" />
      </ItemGroup>
    
      <ItemGroup>
        <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
      </ItemGroup>
    

    System.IO.FileLoadException: Could not load file or assembly 'A, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Could not find or load a specific file. (Exception from HRESULT: 0x80131621)
    

    我已经检查了明显的问题:库存在于我们的内部NuGet提要上,版本号在B和C之间匹配(只有一个版本,所以也没有程序集绑定重定向),A和B是肯定的。NET标准库,因此它们将在下工作。NET Core 1.1。我完全不知所措,因为。NET Framework版本的测试运行得很好,我很肯定我以前会注意到我的测试失败了。有人有什么建议吗?

    1 回复  |  直到 7 年前
        1
  •  4
  •   mbnx    7 年前

    中有一个错误。NET Core 1.1关于文件引用的程序集: https://github.com/dotnet/coreclr/issues/10037#issuecomment-285394031

    这个问题在这里适用吗?