让我们说我的解决方案有两个项目:
第一个项目(MainProject)有一个名为" dependencyX"的NuGet依赖项。显然,该项目" MainProjectTests"引用了#34; MainProject"。
因此,当测试运行器运行" MainProjectTests"调用来自" MainProject"的方法。使用" dependencyX"我收到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>
在NUnit项目中,但获得相同的结果。
答案 0 :(得分:5)
这似乎是一个关于.NET标准库的已知错误(也许尤其是与NUnit结合使用)。我已经提交了bug report here,似乎证实这不是预期的行为。过去半年没有取得进展。
在确认只有在使用NUnit时才会在NUnit回购中提交错误。
当你正在做的时候,你需要引用.NET标准项目中使用的所有库以及引用.net标准的所有项目。
答案 1 :(得分:1)
这是一个向微软报告过几次的错误,似乎他们对此没有做太多,看看这个Visual Studio does not copy referenced assemblies through the reference hierarchy
另一方面,至少使用Nuget Packages,您可以使用解决方案的包管理器以一种简单的方式(将相同的包添加到同一解决方案中的多个项目),如您在此处Nuget Package Manager所示。