【问题标题】:type or namespace name 'Newtonsoft' could not be found找不到类型或命名空间名称“Newtonsoft”
【发布时间】:2012-07-26 16:52:31
【问题描述】:

我已经查看了这个问题,但我没有看到太多答案,显然没有一个有帮助,或者我不会问。我是 .NET 新手。

我的本​​地环境是 Win7,Microsoft Virtual Web Developer 2010 Express。我将 NewtonSoft.Json 添加为自定义组件库。

  • 我使用 Newtonsoft.Json 自定义组件构建了一个简单的“HelloWorld”网络服务。

  • 当我在本地机器 (Visual Web Developer 2010 Express) 上进行构建时,它运行良好。我实际上得到了一个有效的 JSONP 输出,而不是 XML。

  • 当我将文件 FTP 到远程 Web 服务器时,我的 Web 服务不工作。我明白了:

编译错误说明:编译过程中发生错误 编译服务此请求所需的资源。请 查看以下特定错误详细信息并修改您的源 适当的编码。

编译器错误消息:CS0246:类型或命名空间名称 找不到“Newtonsoft”(您是否缺少 using 指令或 程序集参考?)

来源错误:

第 7 行:使用 System.Web.Services.Protocols;

第 8 行:使用 System.Web.Script.Services;

第 9 行:使用 Newtonsoft.Json;

第 10 行:

第 11 行:命名空间 System.Web.Script.Services.CS

我已经尝试了所有方法,从将整个项目文件夹复制到远程文件夹,然后删除所有内容并仅复制我的 asmx 和 web.config 文件,但我仍然收到错误消息。我将 bin 文件夹和 Newtonsoft.Json.dll 复制到远程服务器,然后尝试将其复制到根文件夹中,但无济于事。

是否必须在远程服务器上执行一些操作才能使其使用 Newtonsoft.Json.dll?

【问题讨论】:

  • 经过一番努力,我让它工作了。最终发生的是我的朋友,一位 .NET 专家,通过 Skype 与我交谈,并告诉我将项目部署到目标服务器的正确方法。我不明白你的 Build 有一个单独的文件夹。我制作了一个“构建部署包”作为 zip 文件。然后我把它解压到我的硬盘上,然后把它放到网络服务器上一个干净的文件夹中(实际上,我把它上传到了根目录),瞧,它工作了。

标签: .net json.net


【解决方案1】:

当您复制解决方案的文件时,某些引用可能会“丢失”。 复制文件并在另一台机器上打开后,尝试删除引用并重新添加。

另外,看看这个问题:reference dll not copying to bin with deployment project causing error

【讨论】:

  • 感谢您的指针和链接。经过一番斗争,我得到了它的工作。最终发生的是我的朋友,一位 .NET 专家,通过 Skype 与我交谈,并告诉我将项目部署到目标服务器的正确方法。我不明白你的 Build 有一个单独的文件夹。我制作了一个“构建部署包”作为 zip 文件。然后我把它解压到我的硬盘上,然后把它放到网络服务器上一个干净的文件夹中(实际上,我把它上传到了根目录),瞧,它工作了。
  • 把它作为答案发布,然后打勾,这样对其他可能有类似问题的人的未来会有帮助;)
【解决方案2】:

解决此问题的最佳方法是“清洁解决方案”

在 Visual Studio 的解决方案资源管理器中,右键单击解决方案并选择“清理解决方案”

Clean Solution - deletes all compiled files (all dll’s and exe’s ).
Build Solution - compiles code files (dll and exe) that have changed.
Rebuild Solution - Deletes all compiled files and Compiles them again regardless of whether or not the code has changed.

参考:https://bitwizards.com/thought-leadership/blog/2014/august-2014/visual-studio-why-clean-build-rebuild

【讨论】:

    【解决方案3】:

    感谢您的指针和链接。经过一番斗争,我得到了它的工作。最终发生的是我的朋友,一位 .NET 专家,通过 Skype 与我交谈,并告诉我将项目部署到目标服务器的正确方法。我不明白你的 Build 有一个单独的文件夹。我制作了一个“构建部署包”作为 zip 文件。然后我把它解压到我的硬盘上,然后把它放到网络服务器上一个干净的文件夹中(实际上,我把它上传到了根目录),瞧,它工作了。

    【讨论】:

      【解决方案4】:

      此问题的另一个可能原因是项目正在使用 NuGet 包并且它们尚未恢复(下载)。

      它们可能需要在 Visual Studio 中恢复,或者您可以使用 nuget.exe 命令行可执行文件来恢复包。

      https://docs.nuget.org/consume/package-restore

      【讨论】:

        【解决方案5】:

        第一步是尝试重建您的项目。 如果没有帮助:在“Nuget 包管理器”中找到“Newtonsoft”并卸载它。如果它有引用 => 放置复选框(删除依赖项,强制卸载)并在下拉列表中(依赖行为 => 忽略依赖项,文件冲突操作 => 全部忽略)

        再次安装“Newtonsoft”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-11-23
          • 2017-07-12
          • 2011-05-13
          • 2013-03-25
          • 2012-06-19
          • 2017-11-29
          相关资源
          最近更新 更多