Клиент пакета Nuget получил ошибку: «Не удалось загрузить файл или сборку» System.Net.Http, версия = 4.1.1 .... или одна из ее зависимостей » - PullRequest
0 голосов
/ 21 ноября 2018

Я создал пакет nuget для внутреннего использования в моей организации.Давайте назовем это Doodle Package.Пакет Doodle зависит от пакетов Google AdWords.Похоже, что в пакетах Google Adwords есть пакет nuget для System.Net.Http.

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

 Could not load file or assembly 'System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

При поиске в Google я обнаружил, что удаление этой записи из файла app.config разрешаетсяпроблема:

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
  </dependentAssembly>

Но этот взлом далеко не идеален.Строка кажется воссозданной (казалось бы, наугад), что снова ломает приложение.Кроме того, кажется, что это то, что следует исправить на уровне пакета Doodle, а не полагаться на то, что клиент пакета исправит их конец.

С этой целью я перепробовал кучу вещейв пакете Doodle без изменений в поведении:

  • Я сбросил версию пакета System.Net.Http до 4.1.1
  • Затем 4.0.0
  • В конце концоввообще удалил System.Net.Http и удалил ссылки на него.

Я также пытался удалить пакет System.Net.Http на уровне клиента или установить там и другие версии.Единственное, что работает (и только временно), - это удаление записи depenAssembly в App.Config.

Я знаю, что вы можете отключить автоматическое перенаправление привязки (https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/how-to-enable-and-disable-automatic-binding-redirection). Но это немногоNuclear и снова полагается на клиента, а не на автора пакета Doodle.

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

Я довольно новичок в создании пакета nuget, и я в полном замешательстве. Использую .Net 4.5.2 и в настоящее время не могу выполнить обновление.идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...