system.net.http
- NuGet: 4.3.4 -> 4.0.30319 -> 4.1.1.3
- NuGet: 4.3.3 -> 4.0.30319 -> 4.1.1.2
- NuGet: 4.3.2 -> 4.0.30319 -> 4.1.1.1
- Framework: 4.6.2> 4.0.30319 -> 4.0.0.0
Теперь, если я изменю настройки своего проекта следующим образом: 4.7.2:
А затем проверим мои system.net.http assembly
:
- Framework: 4.7.2> 4.0.30319 -> 4.2.0.0
Таким образом, приведенное выше исследование подразумевает, что если я хочу system.net.http
, мне нужно использовать . NET Framework 4.7.2 . Хорошо пока Но ...
Microsoft Graph 3.2.0 Когда вы смотрите на зависимости для Microsoft Graph 3.2.0, он говорит:
Так что утверждается, что это зависит от . NET Framework 4.6.1 верно?
Поэтому я удаляю и переустанавливаю несколько пакетов NuGet, чтобы они верны для 4.7.2 и затем я изменяю свою запись app.config
:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
Теперь она компилируется. Тем не менее, когда я запускаю программное обеспечение, я все еще, кроме этого исключения (встречается везде в inte rnet!):
{"Не удалось загрузить файл или сборку" System. Net .Http, Версия = 4.2.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a 'или одна из ее зависимостей. Система не может найти указанный файл. ":" Система. Net .Http, Версия = 4.2.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a "}
Я считаю, что этот файл находится здесь:
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Microsoft \ Microsoft . NET .Build.Extensions \ net471 \ lib
Это тот, который используется во время компиляции.
Тем не менее, когда я пытаюсь найти путь выполнения к этой DLL, все, что я могу найти, это:
C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
Но файл там датирован 19.03.2009 г. с версией файла 4.8.3752.0. Еще один здесь:
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Microsoft \ Microsoft. NET .Build.Extensions \ net471 \ lib
01.04.2020 версии 4.6.26011.1.
Так что я в полном замешательстве. Microsoft Graph 3.2.0 говорит, что это зависит от . NET Framework 4.6.1 , но жалуется на требование system.net.http
4.2.0.0 и несмотря на наличие . NET Framework 4.7.2 установлен У меня есть весь этот беспорядок.
У меня никогда не было проблем с использованием Microsoft Graph в прошлом, и только потому, что я обновил до их последних библиотек через NuGet Manager, мой инструмент полностью не работает.
Я перепробовал все предложения, найденные в SO, о привязке перенаправлений и удалении старых файлов. Я просто не знаю, почему Microsoft Graph говорит, что это зависит от 4.6.1, но исключение говорит, что это необходимо (и я не могу найти 4.2.0.0, который является Framework 4.7.2).
Я любезно ценю любые конкретные c шаги для решения этой проблемы, чтобы мое приложение не только снова компилировалось, но и работало так, как раньше.