NHibernateを接続して、第2レベルのキャッシュにEnyim.Memcachedプロバイダーを使用しようとしています。さらに、Enyim.Memcachedでprotobuf-netをシリアライザーとして使用するようにします。
nugetとWebを見ると、必要なほとんどすべての要素を見つけることができます。
nuget:
protobuf-net.Enyim
protobuf-net
(protobuf-net.Enyimの依存関係)EnyimMemcached (Enyim.Caching)
v2.12(protobuf-net.Enyimの依存関係)
web:(http://sourceforge.net/projects/nhcontrib/files/NHibernate.Caches/-NHibernate.Caches.EnyimMemcachedのnugetパッケージが見つかりませんでした)
NHibernate.Caches.EnyimMemcached
Enyim.Caching
v2.3
ただし、すべてを配線すると、The located assembly's manifest definition does not match the assembly reference.
エラーが発生します。問題は次のようです。
NHibernate.Caches.EnyimMemcached
Enyim.Caching
v2.3が欲しいprotobuf-net.Enyim
Enyim.Caching
v2.12が欲しい
彼らはうまくプレーしません。アセンブリリダイレクトを追加しようとしましたが、役に立ちませんでした。
<dependentAssembly>
<assemblyIdentity name="Enyim.Caching" publicKeyToken="cec98615db04012e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.3.0.0" newVersion="2.3.0.0" />
</dependentAssembly>
「最新の」Enyim.Cachingアセンブリ(EnyimMemcachedパッケージを介して)にはv2.12しかありません。D'oh!2.12は2.3よりも新しいです。(マークを指摘してくれてありがとう!)
何かご意見は?私が知らないNHibernate.Caches.EnyimMemcachednugetパッケージはありますか?または、2.12ではなく2.3を使用するprotobuf-net.Enyim?このNHibernate-Enyim-Protobuf-netスタックを使おうとしたのは私だけだとは想像できません。そして、アセンブリバインディングリダイレクトが問題を修正しなかったことに驚いています。
更新:マークのアドバイスに従って行ってよかったです。NHibernate.Caches.EnyimMemcachedのソースをダウンロードし、そのEnyim.Caching参照を署名されていないv2.3アセンブリから署名された2.12アセンブリに変更しただけです。すべてが肉汁です!