Почему при добавлении Microsoft.Extensions.Logging не удалось загрузить файл или сборку System.Net.Http version=4.2.0?

Я начал получать от нового проекта .Net 4.6.2 Unit Test. Это было действительно странно, поэтому я решил воспроизвести упрощенный проект, который я выложил на Github и прикрепил. Разархивируйте и запустите восстановление Nuget в VS. Есть 2 коммита. В первом случае произошел сбой, а во втором он был исправлен после удаления "Microsoft.Extensions.Logging.Abstractions" и Microsoft.Extensions.Logging NuGet. Добавление этого пакета обратно приведет к сбою тестов.

Пожалуйста, помогите мне разобраться в этом странном вопросе. Есть ли что-то для этого пакета из .Net Standard? System.Net.Http поступает из .NET Core + Platform Extensions, согласно apisofnet, но я м, не используя .Net Core.

Что я могу сделать, продолжая использовать System.Net.Http версии 4.0.0.0? Выходные данные сборки содержат: единую первичную ссылку «System.Net.Http, версия = 4.2.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a».

Примечание об обновлении: я выполнил то же самое упражнение по удалению пакетов Nuget из моей первой фиксации, и тесты не прошли, так что все это может быть отвлекающим маневром. Скриншоты ниже показывают, что мне все равно удалось один раз.

Обновление 2: я воспроизвел его шаг за шагом с коммитами: https://github.com/aligneddev/UseSystemNetHttpReferencing/commits/reproduce. Я удалил все пакеты, затем после удаления последнего Microsoft.Extensions.DependencyInjection.Abstractions - system.Net.http отсутствует ошибка сборки. Затем я добавил ссылку с ReSharper, и модульный тест проходит!

Последнее обновление: переход на .Net 4.5.2 также решает проблему. Я действительно не хочу этого делать :-).

Сбой Проходящий


person AlignedDev    schedule 08.12.2017    source источник
comment
Сделать assemblyBinding с System.Net.Http 4.2 на 4.0 ?   -  person Artyom    schedule 08.12.2017
comment
хорошая идея, но мне не помогло   -  person AlignedDev    schedule 08.12.2017


Ответы (1)


Добавление перенаправления привязки в app.config проекта UseSystemNetHttp.Test устраняет вашу проблему:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
person CodeFuller    schedule 09.12.2017