Por que "Método não encontrado: 'Void System.Web.Http.HttpResponseException..ctor" "após a atualização do pacote?

Eu tenho um aplicativo ASP.NET MVC que começou a se comportar mal após as últimas atualizações do pacote NuGet. O aplicativo Web usa o .NET Framework 4.6.1 e a máquina do desenvolvedor é o Windows Server 2012 R2 Essentials. Um pacote que uso é o Stripe.NET para processamento de pagamentos. Suas versões anteriores exigiam apenas<package id="System.Net.Http" version="4.0.0" targetFramework="net461" />. O Visual Studio marcou que há uma versão mais recente disso (na época era4.3.0), mas quando atualizei, ele puxou uma tonelada de pacotes. Então, simplesmente voltei a essa dependência para4.0.0, O Stripe não exigia novos.

Então ultimamente eu apresenteiNager.Date para lidar com dias úteis e feriados. A atualização mais recente (v1.5.0) desse pacote requer"NETStandard.Library" version="1.6.1". Assim como atualizarSystem.Net.Http para4.3.0, atualizando para esseNager.Date puxa a tonelada de pacotes que mencionei. Em resumo: mais cedo ou mais tarde eu tenho que entrar e atualizar.

Os pacotes puxados:

<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net461" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.AppContext" version="4.3.0" targetFramework="net461" />
<package id="System.Collections" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" />
<package id="System.Console" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net461" />
<package id="System.IO" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Linq" version="4.3.0" targetFramework="net461" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net461" />
<package id="System.Net.Http" version="4.3.1" targetFramework="net461" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net461" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net461" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net461" />
<package id="System.Threading" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net461" />

Eu ainda estaria em paz com tudo isso se no final não fosse apresentado a:

Exception thrown: 'System.MissingMethodException' in ThruThink.dll
Additional information: Method not found: 'Void System.Web.Http.HttpResponseException..ctor(System.Net.Http.HttpResponseMessage)'.

Eu não conseguia descobrir por que isso aconteceu. O proprietário do Nager.Date me deu uma idéia: ele gerou o pacote mais recente com o VS 2017, então eu instalei isso esperando que ele instalasse alguns assemblies que resolveriam magicamente essa exceção. Mas isso não aconteceu até agora.

Eu não entendo a lista desses pacotes. Muitas delas são bibliotecas fundamentais que deveriam fazer parte do próprio CLR (como System.IO, System.Console, ...) e disponíveis sem um pacote NuGet. Talvez uma pista seja que eu vejoMicrosoft.NETCore.Platforms, embora eu esteja com o .NET 4.6.1, não estou usando o .NET Core. Ainda não brinquei muito com o .NET Core, mas esses pacotes fazem sentido para a infraestrutura do .NET Core. O que está acontecendo?

A versão mais recente doNager.Date não puxei todas essas dependências e não enfrento mais esse problema.

questionAnswers(1)

yourAnswerToTheQuestion