3

私は、最後のNuGetパッケージの更新後に誤動作し始めたASP.NET MVCアプリケーションを持っています。 Webアプリケーションは.NET Framework 4.6.1を使用し、開発者マシンはWindows Server 2012 R2 Essentialsです。私が使用するパッケージの1つは、支払い処理のためのStripe.NETです。以前のバージョンでは、<package id="System.Net.Http" version="4.0.0" targetFramework="net461" />しか必要ありませんでした。 Visual Studioには、その新しいバージョン(その時点では4.3.0)がマークされていましたが、それを更新したときには大量のパッケージが必要でした。だから私は単にその依存関係を4.0.0に戻しました。ストライプはもっと新しいものは必要ありませんでした。なぜ「メソッドが見つかりません:パッケージ更新後の 'Void System.Web.Http.HttpResponseException..ctor」ですか?

最近、私はNager.Dateを導入して就業日や休日を処理しました。そのパッケージの最新のアップデート(1.5.0)には"NETStandard.Library" version="1.6.1"が必要です。 System.Net.Http4.3.0にアップグレードするのと同じように、Nager.Dateにアップグレードすると、私が言及したパッケージのトンが引き出されます。まとめると、遅かれ早かれ、私は洞窟に入れて更新する必要があります。

引き込ま・パッケージ:

<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" /> 

最後に私が提示されることはありません場合、私はまだこのすべてと平和のうちに次のようになります。

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

私はできませんでしたこれがなぜ起こったのかを理解する。 Nager.Dateのオーナーは私にアイディアをくれました。彼はVS 2017で最新のパッケージを生成しました。そこで、この例外を魔法のように解決するいくつかのアセンブリをインストールすることを期待してインストールしました。しかしそれはこれまでには起こりませんでした。

私はこれらのパッケージのリストを理解していません。それらの多くは、CLR自体の一部(System.IO、System.Console、...など)であり、NuGetパッケージなしで利用可能な基礎ライブラリです。たぶんひとつの手がかりはMicrosoft.NETCore.Platformsと表示されていますが、私は.NET 4.6.1を使用していますが、.NET Coreは使用していません。私はまだ.NET Coreを使って遊んでいませんが、.NET Coreインフラストラクチャにとって意味があります。どうしたの?


Nager.Dateの最新バージョンは、これらの依存関係のすべてに引っ張っていなかったし、私はこれ以上この問題に直面していません。

+0

アップグレード後に問題が発生しました。問題は、System.Web.Http.HttpResponseExceptionに、少なくともライブラリが使用しようとしているものではないコンストラクタがないことです。 –

+0

私はctor = constructorを知っています。どのような非常識なエラー。おそらく、ライブラリのバージョンが何とか不一致になっています。私のGACはうんざりしていますか?この状況をどうやって修正できますか? –

+0

libバージョンが不一致で、クラスの1つがまだ存在しないコンストラクタを呼び出すか、もはや存在しないか、またはプライベートからパブリックに変更された可能性があります。残念ながら、これは私にとっては分かりません(私が解決策を知っていれば私は答えを書いたでしょう)ので、これは私があなたを助けることができる限りです。 –

答えて

1

System.Net.Http OOBのバージョン管理に関する問題が発生しました。Broken System.Net.Http 4.1.1-4.3.0 post-mortemを参照してください。あなたのプロジェクト、あなたが参照するライブラリに依存し、代わりに4.1.1.2または4.0.0.0にリダイレクトする必要があるかもしれません

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

:アセンブリのリダイレクトは、問題を修正する必要があります。

関連する問題