Visual Studio C # модульный тест System.Net.Http.Formatting сборка не загружена - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь написать тесты для моего проекта Web API.Но продолжайте сталкиваться с исключением времени выполнения при выполнении чего-либо на моих контроллерах Web API.enter image description here

Мой тестовый проект работает нормально.Но при запуске Visual Studio жалуется на System.Net.HTTP.Formatting.dll, который не может быть загружен.Я проверил версию между моим основным проектом и моим тестовым проектом, и все версии DLL равны.

полная ошибка:

Сообщение: метод теста Tests.TagsTests.HappyFlowTests выбросил исключение: системаИсключениеДемонстрация Ван-де-Гевондена в сборе и собрании.(Uitzondering van HRESULT: 0x80131040) ---> System.IO.FileLoadException: Канал сборки. System.Net.Http.Formatting, Версия = 5.2.4.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 из een van de afhankelijkheden Hiervan Nietvan nietvan,Демонстрация Ван-де-Гевондена в сборе и собрании.(Uitzondering van HRESULT: 0x80131040)

Losely translation

Сообщение: метод теста Tests.TagsTests.HappyFlowTests выдает исключение: System.IO.FileLoadException: не удается загрузить файлили сборка System.Net.Http.Formatting, версия = 5.2.6.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 или одна из ее зависимостей.Найденный манифест не соответствует указанной сборке.(исключение HRESULT: 0x80131040) ---> System.IO.FileLoadException: не удается загрузить файл или сборку System.Net.Http.Formatting, версия = 5.2.4.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 или одна из ее зависимостей.Найденный манифест не соответствует указанной сборке.(исключение HRESULT: 0x80131040)

Я пытался очистить и перестроить решение несколькими различными способами.Но, похоже, где-то что-то не так, что у него продолжают возникать проблемы с DLL.

My tests packages.config
    <?xml version="1.0" encoding="utf-8"?>
    <packages>
      <package id="EntityFramework" version="6.2.0" targetFramework="net461" />
      <package id="Microsoft.AspNet.WebApi" version="5.2.4" targetFramework="net461" />
      <package id="Microsoft.AspNet.WebApi.Client" version="5.2.4" targetFramework="net461" />
      <package id="Microsoft.AspNet.WebApi.Core" version="5.2.4" targetFramework="net461" />
      <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.4" targetFramework="net461" />
      <package id="MSTest.TestAdapter" version="1.3.2" targetFramework="net461" />
      <package id="MSTest.TestFramework" version="1.3.2" targetFramework="net461" />
      <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net461" />
    </packages>

мой основной проект packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Antlr" version="3.5.0.2" targetFramework="net461" />
  <package id="bootstrap" version="3.3.7" targetFramework="net461" />
  <package id="EntityFramework" version="6.2.0" targetFramework="net461" />
  <package id="jQuery" version="3.3.1" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights" version="2.5.1" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.4.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.5.1" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.5.1" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.Web" version="2.5.1" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.WindowsServer" version="2.5.1" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.5.1" targetFramework="net461" />
  <package id="Microsoft.AspNet.Mvc" version="5.2.4" targetFramework="net461" />
  <package id="Microsoft.AspNet.Razor" version="3.2.4" targetFramework="net461" />
  <package id="Microsoft.AspNet.TelemetryCorrelation" version="1.0.0" targetFramework="net461" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi" version="5.2.4" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.4" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.4" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.4" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.4" targetFramework="net461" />
  <package id="Microsoft.AspNet.WebPages" version="3.2.4" targetFramework="net461" />
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.0" targetFramework="net461" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" />
  <package id="Modernizr" version="2.8.3" targetFramework="net461" />
  <package id="Newtonsoft.Json" version="11.0.1" targetFramework="net461" />
  <package id="System.Diagnostics.DiagnosticSource" version="4.4.1" targetFramework="net461" />
  <package id="WebGrease" version="1.6.0" targetFramework="net461" />
</packages>

1 Ответ

0 голосов
/ 25 июля 2019

Я перенес эту странную ошибку сегодня.Я нашел по какой-то причине, если я использую метод расширения HttpClient.В моем случае httpClient.PostAsJsonAsync.Как только я заменил свой метод расширения на более длинный.

httpClient.PostAsync("/path/", new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json").

Проблема исчезла, несмотря на то, что метод расширения, по-видимому, находится в том же пространстве имен / сборке, что и StringContent.

Я могу попытаться воспроизвестиэто позже и, возможно, поднимет это как потенциальную ошибку SDK, но по крайней мере для меня у меня есть обходной путь.

...