Конфликт Microsoft.WindowsAzure.Storage и System.Net.Http - PullRequest
0 голосов
/ 21 ноября 2018

Я только что обновил все пакеты в моем приложении (которое состоит из множества проектов).Один из этих пакетов был System.Net.Http .Теперь я получаю сообщение об ошибке:

«Хранилище» с идентификатором »Хранилище, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null« использует »System.Net.Http, версия = 4.2.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a ', которая имеет более высокую версию, чем указанная сборка' System.Net.Http 'с идентификатором' System.Net.Http, Версия = 4.1.1.3, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a '

Я надеялся, что смогу добавить перенаправление, поэтому в моем проекте Storage я поместил это:

<?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>

в app.config , но я все еще получаю ошибку.Наверное, мой вопрос: могу ли я использовать перенаправление привязки для библиотеки, на которую ссылаются, или мне нужно откатить Update-Package и наложить ограничения на версию System.Net.Http ??

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Хорошо, после нескольких часов игры, просмотра интернета и размещенных здесь решений, я наконец-то начал работать.Вот шаги, которые я сделал.

  1. Переименование System.Net.Http.dll в System.Net.Http.dl_ в этой папке: C:\ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ Microsoft \ Microsoft.NET.Build.Extensions \ net461 \ lib
  2. Для каждого проекта, который ссылается на System.Net.Http , убедитесь, что они используют пакет NuGet, а не пакет расширений
  3. Создайте свой проект и просмотрите каждый из Refreences для каждого проекта, проверьте версию System.Net.Http dll (щелкните правой кнопкой мыши> свойства)
  4. Выгрузите проект и найдите System.Net.Http и убедитесь, что они имеют ту же версию, что и на шаге3 (Вы можете попробовать установить их все на версию 4.2.0.0, но у меня были проблемы с этим)

Как только это будет сделано, попытайтесь перестроить ваш проект, он должен быть собран и должен работать.Я надеюсь, что это помогает кому-то еще.

0 голосов
/ 22 ноября 2018

Шаги для решения сборки используется версия X, версия которой имеет более высокую версию, чем указанная ошибка ассембли:

Откройте packages.config и удалите запись System.Net.Http.
Сохранитьи сборка, затем чтение, сборка из nuget.
Сборка и запуск.

При компиляции приложений в Visual Studio, предназначенных для .NET Framework 4.5.1 и более поздних версий, перенаправления привязки могут автоматически добавляться в файл конфигурации приложения для переопределения объединения сборок.

В Visual Studio выберите проект в Solution Explorer, а затем выберите Open Folder in File Explorer в контекстном меню.В проводнике найдите файл проекта (.csproj или .vbproj) и откройте его в Блокноте.

Добавьте следующий элемент в первую группу свойств конфигурации (под тегом):

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

Для получения более подробной информации, вы можете обратиться к этой статье .

...