【问题标题】:Error CS0246: The type or namespace name 'Newtonsoft' could not be found错误 CS0246:找不到类型或命名空间名称“Newtonsoft”
【发布时间】:2019-07-24 00:52:02
【问题描述】:

完全错误:Assets\Scripts\ProjectsScript.cs(6,7):错误 CS0246:找不到类型或命名空间名称“Newtonsoft”(您是否缺少 using 指令或程序集引用?)

通过 Unity 运行时,应用程序按预期运行。但是,当尝试在 Unity 中构建应用程序以使用 Lumin 平台将其导出到 Magic Leap 时,由于上述编译器错误,它会失败。 Assets 文件夹下有一个包含相应文件的 JsonDotNet 文件夹。 Project Settings->Player->Other settings 下的设置似乎设置得当(Scripting Runtime Version -> .NET 4.X Equivalent)(Api Compatibility level -> .NET 4.x)。在 Visual Studio -> 管理 nuget 解决方案中,找到了 json.net。我知道有类似的问题,但我们一直在尝试他们的解决方案,但无济于事。我们也尝试过移动 JsonDotNet 文件夹,但 unity 在编译时似乎仍然找不到它。

【问题讨论】:

  • 找到你的dll文件,里面有导入设置,检查一下。
  • 尝试重新导入,仍然损坏

标签: c# unity3d json.net


【解决方案1】:

最简单的解决方案是将文件 Newtonsoft.Json.dll 复制到您的 Assets 文件夹中,然后删除对 Nuget 包的依赖并改为引用复制的 DLL。 Unity 将获取新 DLL 的存在,并且统一项目中的所有代码都将自动引用它。

另一种方法是使用资源商店中 newtonsoft 的 json.net(免费),但我选择了前一种方式,因为我希望我的外部 DLL(不是 Unity 项目的一部分,编译到 Assets 文件夹中)来引用同版本的json.net。

【讨论】:

    【解决方案2】:

    答案是 JsonDotNet 在 MagicLeap 上不受官方支持。尽管 Unity Asset Store 表示它正式支持除 blah blah 之外的所有版本,但该资源是在 Lumin 成为官方平台之前于 2017 年发布的。我们需要请求 Newtonsoft 更新他们的 Unity 资产。

    这里的问题是“找不到 newtonsoft...也尝试在 JsonDotNet 文件夹中移动...”
    这里的stackoverflow“答案”指出“最简单的解决方案是将文件Newtonsoft.Json.dll复制到您的资产文件夹......另一种方法是使用newtonsoft的json.net......但我选择了前者......”

    因此,据此,如果我要正确理解:问题是 X。答案发布者说最简单的解决方案是 X,而替代解决方案是 X。答案发布者选择了 X。

    堆栈溢出ftw。最大努力 dfl。

    【讨论】:

      猜你喜欢
      • 2018-11-23
      • 2019-07-14
      • 2019-09-14
      • 2013-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多