У меня есть решение с более чем 40 проектами.
В большинстве этих проектов я использую System.Net.Http, который я установил через NuGet. На момент написания статьи мы установили v4.3.3 от Nuget. Это также то, что записано в packages.config
<package id="System.Net.Http" version="4.3.3" targetFramework="net47" />
Когда я заглядываю в свой app.config, я использую разные версии здесь. В некоторых моих конфигах версия указана как 4.1.1.2, в других - как 4.2.0.0. Думаю, это внутренние версии, но я считаю, что проводная установка одного и того же NuGet в двух разных проектах дает мне две разные внутренние версии.
Один app.config:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.2" newVersion="4.1.1.2" />
</dependentAssembly>
Другой 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>
Я попытался понизить версию, а затем снова обновить ее в Nuget, чтобы обновить и package.config & app.config. И файлы обновляются.
Но в одном app.config я получаю другую версию, чем в другой. С той же версией NuGet, установленной одновременно.
Что дает?
Я прочитал довольно много тем здесь на SO, но ни одна из них не имеет такой же проблемы. В большинстве случаев люди решают свои проблемы путем обновления до последней версии, которая здесь не помогает.
Я предполагаю, что у меня могут быть другие ссылки, которые вынуждают версию System.Net.Http к более старой версии для этого проекта, но есть ли способ подтвердить этот тезис? Кроме того, если это действительно так, то можно ли заставить весь проект работать с самой высокой общей версией вместо разных версий?