【问题标题】:Could not load file or assembly Newtonsoft.Json [duplicate]无法加载文件或程序集 Newtonsoft.Json [重复]
【发布时间】:2017-12-31 12:04:47
【问题描述】:

我正在尝试在 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 复制到它需要运行的服务器。任何帮助都会 非常感谢。

【问题讨论】:

  • 是的。您需要将所有依赖的程序集、库和 dll 复制到运行 exe 的目标位置。
  • 您使用的是什么类型的 IDE?
  • 我正在使用 Visual Studio 社区版 2015
  • 输出是否包含名为“Newtonsoft.Json.dll”的文件?
  • 我将 dll 复制到它运行的服务器上的同一路径,但它仍然给我同样的错误 C:\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll

标签: c# json json.net


【解决方案1】:

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

更新:

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

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

【讨论】:

  • 如果您对某件事投了反对票,通常的礼貌是至少留下一个说明,解释原因或以某种方式为改进答案做出贡献。
  • 我自己被否决了,我不知道为什么?嘘
【解决方案2】:

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

示例

C:\Folder\Projects\ConsoleAppTest\ConsoleAppTest\bin\Release

-或-

C:\Folder\Projects\ConsoleAppTest\ConsoleAppTest\bin\Debug

【讨论】:

  • 你认为他真的忘记复制所有文件了吗?
  • @KeesdeWit 是的,我相信他做到了,我很熟悉他正在尝试做的事情,特别是他收到的信息。
【解决方案3】:

版本可能有所不同。依赖程序集需要 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>

提到的版本只是一个例子

另外确保参考的设置如下:

【讨论】:

  • Visual Studios 在通过 nuget 安装时将这些键添加到配置文件中。
  • 没错,但不是没有 nuget
  • 嗨@Kees de Wit 是否需要将Visual Studio 安装在需要运行parser.exe 的服务器中
  • @KeesdeWit 猜我来自火星,你为什么要特意不在 Visual Studio 应用程序中使用 nuget 或 brower。
  • 我无法解释疯狂的逻辑;)
猜你喜欢
  • 2014-04-08
  • 1970-01-01
  • 2011-09-04
  • 2015-12-23
  • 2020-11-01
  • 2020-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多