2017-10-13 18 views
0

私がデバッグしているときには、以下の点で例外が発生しました。ファイルまたはアセンブリ 'Newtonsoft.Json'またはその依存関係の1つを読み込めませんでしたか?

var connection = new HubConnection("http://localhost:8080/"); 

Exception: 
Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 

私はserverHub.exe(コンソールアプリケーション)とwinformsであるクライアントモジュールをダンプしたフォルダを作成しました。クライアント側では、上記の手順を呼び出すときに私は例外があると述べた。

私はバージョン6.0.0.0のNewtonsoft.Jsonをインストールしましたが、その後バージョン9.0.1に更新しました。今私は作成した共通のフォルダにdllの(Microsoft.Asp.Net.Client.dll, Newtonsoft.Json.dll along with other dll's required)をコピーしました。これは私が例外に直面し始めたときです。

私のプロジェクトの参照(Newtonsoft.Json.dll, Microsoft.Asp.Net.Client.dll)は、私が "パッケージ"の場所からコピーしたdllをダンプしたところで私が新たに作成したフォルダを参照しています。

もう一度これらの参照を削除し、パッケージマネージャ(Microsoft.Asp.Net.Client.dll-バージョン:2.2.1 & Newtonsoft.Json.dll-9.0.1)からNugetパッケージをダウンロードしました。 であり、参考文献は現在packageから参照されています。今私は自分のアプリケーションを構築しようとしましたが、今は正常に動作しています。

App.configファイル(クライアントの):

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
    <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> 
    </runtime> 
</configuration> 

App.configファイル(サーバー):

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" /> 
    </dependentAssembly> 
    <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> 

私がインストールされているすべてのDLLのコピーされます別の場所を参照起動した場合私は上記の例外に直面しているソリューションディレクトリの下のデフォルトの "Packages"の場所ではなく、デフォルトの "パッケージ"の場所ではなく別の場所から参照するようにしますか?はいの場合、私が間違っているところで助けてください。

誰でも助けてください。

+0

私は理解できませんが、今は動作していますが、なぜそれができなかったのか知りたいのですか? –

+0

@ user3739842、私は私の質問を編集しました。申し訳ありませんが明確ではありません。なぜ私は、デフォルトの "パッケージ"の場所ではなく、別の場所からdllを参照し始めたときに例外が発生しているのか知りたいと思っています。 – Siva

答えて

0

私は、これは、このツールでチェックしてみても解決できない場合 < bindingRedirect oldVersion =「0.0.0.0-9.0.1.0」NEWVERSION =「9.0.1.0」/ >に

をリダイレクトバインディングを変更しようとするだろう実際に見逃されているものを見るために実行ファイルを実行する新しい場所: https://stackoverflow.com/a/44251000/2819746

関連する問題