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

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

  • 第一个叫做“MainProject”(一个.NETStandard 2.0项目)。
  • 第二个称为“MainProjectTests”(一个NUnit测试项目),每个类的一些unit testing进入“MainProject”。

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

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

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)

谢谢您的帮助。

编辑:

尝试选择:

 PackageReference true 

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

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

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

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

这是一个向微软报告过几次的错误,似乎他们没有做太多,看看这个Visual Studio不会通过引用层次结构复制引用的程序集

另一方面,至少使用Nuget Packages,您可以使用解决方案的包管理器以一种简单的方式(将相同的包添加到同一解决方案中的多个项目),如您在此处可以看到Nuget Package Manager 。

解决方案经理

在此处输入图像描述