2016-09-17 72 views
0

调试器不断给我这个'System.IO.FileLoadException'错误消息在Visual Studio的输出窗口中每当我调用一个dll程序集中的toJSONString()方法时,早先创建。见下面的方法。我使用NuGet来加载和引用newtonsoft-json.dll库,所以为什么运行时间尝试失败超出了我。'System.IO.FileLoadException'with newtonsoft-json

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

    return strOut; 
} 

在解决方案资源管理器窗口,参考下,我检查了Newtonsoft.Json路径是C:\ 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."); 

也许这个链接也可以帮助,检查你的(工作室)存取权限的权利: Checking file/folder access permission

+0

该项目包括直接包。我之前创建的dll库也有它引用的同一个包的副本。我插入你提供的代码,它确实返回File exists。 – Alan