无法加载文件或程序集Newtonsoft.Json

时间:2017-07-25 13:51:51

标签: c# json json.net

我试图在c#中使用Json.net来编写一个json文件。当我构建代码时,它构建正常并创建一个parser.exe罚款。但是当我尝试在需要运行的单独服务器上运行该parser.exe时,它会给我一个错误

System.IO.FileNotFoudException: Could not load file or assembly 
'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4f...' 
or one of its dependencies. The system cannot file the file specified. 

我是否需要将Newtonsoft dll复制到需要运行的服务器上。任何帮助都将是 非常感谢。

3 个答案:

答案 0 :(得分:2)

通过右键单击引用,选择“属性”并将Copy Local设置为True,确保将引用的DLL设置为部署到bin文件夹。

<强>更新

发生的事情是您在本地引用了DLL,但在部署程序时,目标计算机中缺少该程序。

通过将引用设置为始终被复制,您的bin文件夹将具有它的副本,因此只要您正确部署它(包括bin文件夹),它就应该有效。

答案 1 :(得分:1)

是的,您需要复制Bin文件夹中的整个Debug或Release文件夹。建议提示您确保重建解决方案以获得最近的所有更改。

示例

C:\文件夹\项目\ ConsoleAppTest \ ConsoleAppTest \ BIN \释放

<强> -OR -

C:\文件夹\项目\ ConsoleAppTest \ ConsoleAppTest \ BIN \调试

答案 2 :(得分:0)

版本可能存在差异。依赖程序集需要10.0.0.0,但您引用了另一个版本。将其添加到您的应用程序配置:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <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>

提到的版本只是一个例子

确保参考设置如下: enter image description here