依赖项目之间不依赖的依赖关系,导致System.IO.FileNotFoundException

Bru*_*res 14 .net c# nunit visual-studio visual-studio-mac

假设我的解决方案有2个项目:

  • 第一个叫做"MainProject"(一个.NETStandard 2.0项目).
  • 第二个称为"MainProjectTests"(一个NUnit测试项目),每个类的一些单元测试进入"MainProject".

第一个项目(MainProject)有一个名为"dependencyX"的NuGet依赖项.显然,项目"MainProjectTests"引用了"MainProject".

因此,当测试运行器运行"MainProjectTests"测试时,使用"dependencyX"从"MainProject"调用方法,我得到一个System.IO.FileNotFoundException异常:

System.IO.FileNotFoundException:无法加载文件或程序集'dependencyX,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.

为什么我得到这个例外?当我将"dependencyX"添加到"MainProjectTests"时,一切正常,但在我看来这不是一个好习惯......如何解决?

我正在使用Visual Studio for Mac Community 7.2预览版(7.2 build 583)

谢谢您的帮助.

编辑:

尝试选择:

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
Run Code Online (Sandbox Code Playgroud)

在NUnit项目中,但获得相同的结果.

CSh*_*ark 5

这似乎是关于.NET标准库的一个已知错误(可能特别是与NUnit结合使用).我已经在这里提交了一个错误报告,似乎证实这不是预期的行为.过去半年没有取得进展.

也许应该在确认只有在使用NUnit时才会在NUnit repo中提交错误.

当你正在做的时候,你需要在引用.net标准的所有项目中引用.NET Standard项目中使用的所有库.