【发布时间】:2018-03-30 17:19:56
【问题描述】:
我有以下依赖树
- 我的框架
- 数据访问
- 处理器
- Processor.Tests
每个程序集都引用它上面的所有程序集。所以 Processor.Tests 引用了 Processor、DataAccess 和 MyFramework。除了 ProcessorTests 对 Processor 的引用之外,所有引用都通过私有 Nuget 服务器。
我需要模拟的 DataAccess 程序集中有一个接口 (IMessageLogger)。该接口中的一个方法具有 MyFramework 中定义的类型的参数。
当我尝试Mock.Create<IMessageLogger>() 时,出现以下异常
System.IO.FileLoadException:无法加载文件或程序集“MyFramework,Version=2017.12.12.1,Culture=neutral,PublicKeyToken=null”或其依赖项之一。需要强命名程序集。 (HRESULT 异常:0x80131044)
我的所有程序集都不是强命名的,但 Telerik.JustMock 是强命名的,但到目前为止它在模拟任何其他接口时没有给我带来任何麻烦。
有人知道我可以如何解决这个问题吗?
【问题讨论】:
-
or one of its dependencies-MyFramework引用什么作为依赖项? -
它引用了 20 个其他程序集(一些内部的一些公共 Nuget,一些 .Net 框架),其中一些当然会引用其他程序集。您在寻找特定的东西吗?还是您认为程序集的名称可能会提示您?
-
没有。我正在考虑其他引用的程序集导致测试项目出现问题。
-
我刚刚浏览了 MyFramework 项目中的所有参考资料。那里引用的所有内容也都从 Processor.Test 中引用,版本匹配,并且所有项目之间具有绑定重定向的少数程序集匹配。
-
除了标准的东西(Microsoft.CSharp、System、System.Data 等)之外,我们还从我们的私有 Nuget 和以下 3rd 方库中引用了一些其他内部包:antlr.runtime、NewtonSoft .Json、Org.Metalis.Security、RestSharp、TopShelf 和 XSerializer
标签: c# strongname justmock