2016-09-17 7 views
0

私が持っていたdllアセンブリのtoJSONString()メソッドを呼び出すたびに、デバッガはVisual Studioの出力ウィンドウにこの 'System.IO.FileLoadException'エラーメッセージを表示し続けます。以前作成された。以下の方法を参照してください。私はnewtonsoft-json.dllライブラリをロードして参照するためにNuGetを使用しました。なぜランタイムの試行が失敗し続けるのか、私はそれを超えています。ソリューションエクスプローラウィンドウで'System.IO.FileLoadException' with newtonsoft-json

Object output; 
... 
public String toJSONString() 
{ 
    String strOut = ""; 
    if (output != null) 
    { 
     strOut = JsonConvert.SerializeObject(output); 
    } 

    return strOut; 
} 

は、参考文献の下で、私はCであるNewtonsoft.Jsonのパスを確認:\ TEMP2 \ DataTables_Examplesパッケージ\ \ Newtonsoft.Json.9.0.1 \ libに\ net45 \ Newtonsoft.Json .dll。そのdllファイルはそこに存在します。私はアプリがそれを見ない理由を知らない?どんな助けもありがとう。

+1

は、ソリューションをきれいにし、再構築してみてください。 – Chandru

+0

あなたは 'update-package Newtonsoft.Json -reinstall'を試しましたか? –

答えて

2

パッケージのバージョン管理に問題がある可能性があります。 同様のエラーのある人にはthis solutionをお試しください。

+0

リンクをありがとう。それが助けになりました。解決策を見つけました。私のweb.configファイルにはnewtonsoft.jsonパッケージへの参照がなく、私のdllプロジェクトはnewtonsoft.jsonパッケージの別のバージョンを参照していました。いったん両方のプロジェクトが同じバージョンを参照すると、すべてが機能しました。しかし、なぜ同じバージョンでなければならないのか分かりません。 – Alan

0

ライブラリやフォルダを表示しているソフトウェアはありますか? (NotePad ++など)また、プロジェクトに直接パッケージを含めると良いでしょう。ファイルがスタジオ用に存在するかどうかを調べるようにしてください(https://msdn.microsoft.com/en-us//library/system.io.file.exists(v=vs.110).aspx)。 (ページの例)

string curFile = @"c:\temp\test.txt"; 
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist."); 

たぶん、このリンクはまたあなた(スタジオ)ACCES権を確認するために、役立ちます。 Checking file/folder access permission

+0

プロジェクトにはパッケージが直接含まれています。先ほど作成したdllライブラリには、同じパッケージのコピーがあります。あなたが提供したコードを挿入しましたが、Fileが返されます。 – Alan