ASP.NET WebAPIで、Nugetで更新をしたらAutofacがエラーするようになった場合の対処(継承セキュリティ ルールの違反)
ASP.NETのWebAPIアプリケーションで、Autofacを使っている場合、
- Autofac
- Autofac.WebApi
を使用していると思う。
しかし、WebAPI関係のNugetを更新すると、
Autofac.Integration.WebApi.AutofacWebApiDependencyResolver.BeginScope()' のオーバーライド中に、継承セキュリティ ルールの違反が発生しました。オーバーライドするメソッドのセキュリティ アクセシビリティは、オーバーライドされるメソッドのセキュリティ アクセシビリティと一致している必要があります。Autofac 継承セキュリティ ルールの違反
System.TypeLoadException はユーザー コードによってハンドルされませんでした。
HResult=-2146233054
Message=メンバー 'Autofac.Integration.WebApi.AutofacWebApiDependencyResolver.BeginScope()' のオーバーライド中に、継承セキュリティ ルールの違反が発生しました。オーバーライドするメソッドのセキュリティ アクセシビリティは、オーバーライドされるメソッドのセキュリティ アクセシビリティと一致している必要があります。
というエラーがでて、どうやっても解消できなくなってしまう。
いちどプロジェクトを作り直したりしたけど、やっぱりダメ。。。。
いろいろと先人たちの知恵をぐぐってみると、今のところの解決法は、
一旦 Autofac.WebApi を削除してから、
を行うことでエラーがなくなる。
PM> Install-Package Autofac.WebApi5 -Pre
検索で日本語のページは一切引っかからなかったので、同じエラーに遭遇した人のためここにメモ。