Что делать, если не работает связывание с прямым каталогом? - PullRequest
0 голосов
/ 01 февраля 2019

Я нахожусь в ситуации, напоминающей "DLL ад".Я использую кучу пакетов nuget, которые могут запутать обстоятельства, я полагаю.

Жалоба во время выполнения, что он не может найти System.Net.Http 4.0.0.0

Система.IO.FileLoadException: Не удалось загрузить файл или сборку 'System.Net.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' или одна из ее зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040)

Однако в моем app.config есть следующее:

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

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

Также может иметь значение, что это происходит в старом модульном тесте .App.config находится в проекте модульного тестирования.


PS Я видел другие вопросы в этой общей области, но они не отвечают на мою проблему, так как я использую код C # на 100%.

1 Ответ

0 голосов
/ 01 февраля 2019

Я чувствую твою боль.Прошлым летом я потерял почти неделю на этом.Я предполагаю, что это проект .NET Framework (т.е. не Core).Удалите пакет NuGet System.Net.Http и все перенаправления привязки для этой сборки.Это "должно просто исправить" вашу проблему (без гарантий)

Если вы будете искать, вы должны найти заметку от кого-то из команды разработчиков Microsoft, извиняющуюся за беспорядок и сообщающую, что никогда не должно быть пакета NuGetдля этого (я думаю, что это в обсуждении вопросов GitHub).

Это из памяти - извините, я там больше не работаю, поэтому я не могу проверить свои заметки.

...