2017-06-20 9 views
2

私は、マシン上にも存在しない古いバージョンのdllを読み込もうとしているときにエラーが発生する問題にぶつかりました。バインドリダイレクトはリダイレクトされませんか?

は ' カルチャニュートラル、PublicKeyToken = = 30ad4fe6b2a6aeed Newtonsoft.Json、バージョン= 6.0.0.0を' またはその依存関係の1つ をファイルまたはアセンブリをロードできませんでした。見つかったアセンブリのマニフェスト定義では、 がアセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040):

<dependentAssembly> 
    <assemblyIdentity name="NewtonSoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" /> 
</dependentAssembly> 

は、溶液中の6.0.0.0ビルドへの参照はありません

は、私はすでにこの問題に対処するためのWebConfigでリダイレクトを持っていました。おそらく依存?もしそうなら、私は実行時間をどのようにして罪のある部分が誰かに教えてくれるか分かりません。

なぜこれはまだフォールトしていますか?

+0

Azure SDKは、最も頻繁に実行するSDKで、6.0.0.0のdepを持っています。 – vcsjones

+0

@vcsjones Azureはまったく使用していません。 – asawyer

+0

Newtonsoft.Jsonのそのバージョンを使用するかもしれない別のプロジェクトがありますか? – ybrajim

答えて

2

答えが私の目の前であったことが分かります。 assemblyBindingタグには、.Netフレームワークのバージョンごとにリダイレクトされるバージョンを指定するapplyTo属性があります。

assemblyBinding appliesTo="v2.0.50727" 

何らかの理由でv2.0に設定されました。アプリケーションはv4.0を実行しているため、リダイレクトは適用されません。属性を削除すると、問題が修正されます。

<runtime> 
    <assemblyBinding> 
     <dependentAssembly> 
      <assemblyIdentity name="NewtonSoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
      <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 
関連する問題