Не удалось загрузить файл или сборку » Microsoft.Расширения.Зависимость от инъекции.Абстракции, Версия=3.1.1.0

#c# #.net #unit-testing #dependency-injection #.net-framework-version

Вопрос:

Не удалось загрузить файл или сборку » Microsoft.Расширения.Зависимость от инъекции.Абстракции, Версия=3.1.1.0, Культура=нейтральная, PublicKeyToken=adb9793829ddae60′ или одна из его зависимостей. Определение манифеста расположенной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040).

Изложенное выше является полной ошибкой. Он исходит из модульного теста, который ссылается на проект .Net Framework. Этот проект имеет прямую ссылку на » Microsoft.Расширения.Зависимость от инъекции.Абстракции, Версия=3.1.1.0″ для использования «коллекции IServiceCollection». Я пытаюсь создать макет объекта класса, который использует «IServiceCollection» для завершения тестового сценария.

Проект .Net Framework имеет прямые ссылки как на DependencyInjection, так и на DependencyInjection.Абстракция. Я установил оба этих пакета в проект модульного тестирования из nuget в попытке устранить проблему. Оба ссылаются на версию библиотек абстракции NetStandard2.0. Что интересно, я не получаю этой ошибки при запуске/отладке теста в моей локальной среде в 2019 году. Это приводит к сбою в конвейере CI.

У меня также есть перенаправление привязки в файле apps.config тестового проекта следующим образом:

 <dependentAssembly>
        <assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0"/>
      </dependentAssembly>
 

Я рассмотрел ответы на соответствующие сообщения, но до сих пор у меня ничего не получалось. Кроме того, все проекты ориентированы на .Net Framework версии 4.8