2

我有以下依赖树

  • 我的框架
  • 数据访问
  • 处理器
  • 处理器.测试

每个程序集都引用它上面的所有程序集。所以 Processor.Tests 引用了 Processor、DataAccess 和 MyFramework。除了 ProcessorTests 对处理器的引用之外,所有引用都通过私有 Nuget 服务器。

我需要模拟的 DataAccess 程序集中有一个接口 (IMessageLogger)。该接口中的一种方法具有 MyFramework 中定义的类型的参数。

当我尝试时,Mock.Create<IMessageLogger>()我得到以下异常

System.IO.FileLoadException:无法加载文件或程序集“MyFramework,Version=2017.12.12.1,Culture=neutral,PublicKeyToken=null”或其依赖项之一。需要强命名程序集。(来自 HRESULT 的异常:0x80131044)

我的所有程序集都不是强命名的,但 Telerik.JustMock 是强命名的,但到目前为止它还没有给我任何模拟任何其他接口的麻烦。

任何人都知道我如何能够解决这个问题?

4

1 回答 1

0

事实证明,问题在于我的 Processor 和 Processor.Test 项目引用了 MyFramework 程序集的 2018.3.15 版本,但 DataAccess 项目引用了旧版本 (2017.12.12.1)。

更新了所有项目以使用最新的并且一切都再次运行。

于 2018-04-02T20:18:57.207 回答