2016-11-14 25 views
1

CacheManager(http://cachemanager.michaco.net/)の使用を計画しており、CacheManager.Serializationで動作するように設定しようとしています。 Json。 Newtonsoft.Json(> = 8.0.3)が必要です。CacheManager.Serialization.Json "ファイルまたはアセンブリを読み込めませんでした。 'Newtonsoft.Json、Version = 8.0.0.0"

私はNewtonsoft.Json 9.0.1をNuGet経由でインストールしました。これは私のweb.config

<cache name="redisWithBackplane" updateMode="Up" enableStatistics="false" 
     enablePerformanceCounters="false" backplaneName="localRedis" backplaneType="CacheManager.Redis.RedisCacheBackplane, CacheManager.StackExchange.Redis" 
     serializerType="CacheManager.Serialization.Json.JsonCacheSerializer, CacheManager.Serialization.Json"> 
<handle name="localRedis" ref="redisHandle" expirationMode="None" timeout="50s" isBackplaneSource="true" /> 

の抜粋であると、私はエラーが「「Newtonsoftをファイルまたはアセンブリをロードできませんでした。そうだ、同じweb.configファイル

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> 
    </dependentAssembly> 
</assemblyBinding> 

にリダイレクトバインディング。 Json、Version = 8.0.0.0 "、そしてNewtonsoft.Jsonをバージョン8.0.0に置き換えると、それは動作し始めました。バインディングリダイレクトは何の効果もないようです。何か案が。何が間違っていますか?

+0

問題はルートタグでした。私はそれをinheritInChildApplicationsのとして持っていました。私は一度それをに変更しただけで機能しました。 VS2010が無効なinheritInChildApplicationsを無効にしているにもかかわらず、まだ動作しています –

+0

クールで、既にそれを見ていて再現できませんでした^^ – MichaC

答えて

0

あなたはJson.Net 9.0.1を持っていると書きましたが、リダイレクトは9.0.0.0にバインドしています。

おそらく9.0.1.0へのリダイレクトを修正する必要があります(8.0.0をロードしようとした後、バインディングリダイレクトを見つけて最新のものをロードしようとしますが、9.0.0.0まで存在しません)。

P.S.文法と1をどこに入れるかわからないので、10.0.0.0で試すことができます。その問題を排除するだけです。

+0

9.0.1のアセンブリバージョンはまだ9.0.0.0ですので、リダイレクトは全く問題ありません – MichaC

+0

このスレッドも同様です:http://stackoverflow.com/questions/22507189/could-not-load-file-or-assembly-newtonsoft-json-version-4-5-0-0-culture-neutr。例えば第2の答えによれば、設定に名前空間がある場合、バインディングリダイレクトは無視できます。 –

関連する問題