Mock.Create<>() требующий строгого имени

У меня есть следующее дерево зависимостей

  • MyFramework
  • Доступ к данным
  • процессор
  • Processor.Tests

Каждая сборка ссылается на все вышеупомянутые. Итак, Processor.Tests ссылается на Processor, DataAccess и MyFramework. За исключением ссылки ProcessorTests на Processor, все ссылки осуществляются через частный сервер Nuget.

В сборке DataAccess есть интерфейс (IMessageLogger), который мне нужно смоделировать. Один из методов в этих интерфейсах имеет аргумент типа, определенного в MyFramework.

Когда я пытаюсь Mock.Create<IMessageLogger>() Я получаю следующее исключение

System.IO.FileLoadException: не удалось загрузить файл или сборку 'MyFramework, версия =2017.12.12.1, культура = нейтральная, PublicKeyToken=null' или одна из ее зависимостей. Требуется строгое собрание. (Исключение из HRESULT: 0x80131044)

Ни одна из моих сборок не имеет строгого имени, но Telerik.JustMock имеет строгое имя, но до сих пор не доставляло мне никаких проблем с насмешкой над другими интерфейсами.

У кого-нибудь есть идеи, как я мог бы обойти это?

1 ответ

Решение

Оказывается, проблема заключалась в том, что у меня были проекты "Процессор" и "Процессор.Тест", ссылающиеся на версию 2018.3.15 сборки MyFramework, но проект DataAccess ссылался на более старую версию (2017.12.12.1).

Обновлены все проекты, чтобы использовать последние и все снова работает.

Другие вопросы по тегам