序章
今日、ASP.NET MVC アプリケーションを更新したところ、次のエラーが発生しました (ドイツ語 - 申し訳ありません)。
Die Datei order Assembly "WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35" ore abhängigkeit davon wurde nicht gefunden. Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein. (Ausnahme von HRESULT: 0x80131040)
(アセンブリ「WebGrease、バージョン 1.5.1.25624」が見つかりませんでした)
アセンブリ System.Web.Optimization、Version=1.1.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35 が WebGrease アセンブリを読み込もうとして失敗しました。
解決
この問題は、次のように web.config にバインド リダイレクトを追加することで簡単に回避できることを知っています (WebGrease を更新したため)。
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.6.5135.21930" />
</dependentAssembly>
さらなる質問
なぜこれが必要なのか、また *.Optimization アセンブリがどのように作成されるのかを知っていただければ幸いです。System.Web.Optimization 1.1.3 アセンブリは WebGrease 1.5.2 に依存しており、「別のバージョンの WebGrease を使用する」-リダイレクトにより、新しいバージョンには存在しないメソッド呼び出しが発生する可能性がありますね。
*.Optimization の開発者は、プロジェクトに WebGrease 1.5.2 への参照を含め、ビルド後に WebGrease アセンブリを削除し、NuGet パッケージを作成しましたか? それとも、コードでアセンブリをロードしますか?
これがどのように機能するかについての説明は本当にありがたいです。ありがとうございました。