17

さて、私は Telerik のコントロール ライブラリ、特に ASP.NET のヘビー ユーザーです。ただし、いくつかのコントロールに追加したい機能が少しあります。最近では、拡張メソッドを使用してこれを簡単に行うことができます。そこで、まさにそれを行う小さなライブラリを作成しました。明らかに、このライブラリは DLL ( Telerik.Web.UI.dll) を参照する必要があります。

My Project > References私のDLLプロジェクトのページには、への参照がありTelerik.Web.UI.dllます。この参照用に、Specific Versionプロパティを False に設定しています。これは、使用している Telerik DLL のバージョンをライブラリに気にさせたくないためです。これは私の問題ですが....NETコンパイラはこの設定を尊重していないようです。

適切な例として、Telerik DLL と私の両方を参照する Web サイトがあります。Telerik ライブラリを最新バージョンに更新しました。ウェブサイトを実行しようとすると、次のようになります。

Could not load file or assembly 'Telerik.Web.UI, Version=2012.1.215.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

これを修正するには、DLL プロジェクトに移動し、最新の Telerik DLL に対して再コンパイルし、Web サイトで DLL を更新します。これはまさに、Telerik のライブラリを更新するたびにやりたくなかったことです。特定のバージョンを falseに設定すると、どのバージョンでも機能することを意味すると思いました。いいえ?それとも、その設定が何をするのかを完全に誤解していますか?

4

1 に答える 1

4

実行時bindingRedirectに別のバージョンのアセンブリを使用するように .NET フレームワークに指示できるようにするための使用を検討する必要があります(つまり、プロジェクトがバージョン 1.0 に対してコンパイルされた場合、API の変更がなければ、バージョン 1.1 でも動作します)。

Specific Version属性は、コンパイル時のアセンブリ参照にのみ適用されます。

于 2012-05-18T18:13:04.560 に答える