json CS0246未找到类型或命名空间“Newtonsoft”

rta7y2nd  于 2023-05-08  发布在  其他
关注(0)|答案(2)|浏览(468)

Unity3D(2018.1.1f1)的干净安装后,它安装了VS 2017(15.7.3)。我开始了一个cs脚本,并希望调试一个对象“print_r”样式,所以我安装了Newtonsoft.Json 11.0.2通过th nuGet Package-Manager。如果我在pakage-console中调用“Get-Package”,它会显示给我

Newtonsoft.Json                     {11.0.2}                                 Assembly-CSharp

不幸的是,当我尝试编译时,它仍然会向我推送错误:

Schweregrad Code    Beschreibung    Projekt Datei   Zeile   Unterdrückungszustand

Fehler CS0246 Der Typ- oder Namespacename“Newtonsoft”wurde nicht gefunden(möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). Assembly-CSharp C:\Users\bubu\Documents\Therapiefilm\Assets\test.cs 4 Aktiv这意味着未找到命名空间“Newtonsoft”或缺少Assembly-Link。
但我不知道错误到底是什么。;-(
任何提示都欢迎!关于Rene´ ps:我的脚本源:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;

public class test : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {

    }
    private static void Dump(object o)
    {
        string json = JsonConvert.SerializeObject(o, Formatting.Indented);
        Console.WriteLine(json);
    }
}
rdlzhqv9

rdlzhqv91#

建议使用已准备好的Newtonsoft.Json分支之一,这些分支已将其更改为与Unity3D兼容。它们比NuGet包更容易使用,并且不像官方的NuGet包在构建到Android,iOS,WebGL等AOT目标时会在运行时失败,它们都支持这一点。以下是前三名:

jilleJr的变体是撰写本文时唯一活跃的分叉。其他人停止了发展。
安装说明摘自jilleJr's wiki
打开/Packages/manifest. json,添加jillejr的作用域,然后将包添加到依赖项列表中。
关于:

{
  "scopedRegistries": [
    {
      "name": "Packages from jillejr",
      "url": "https://npm.cloudsmith.io/jillejr/newtonsoft-json-for-unity/",
      "scopes": ["jillejr"]
    }
  ],
  "dependencies": {
    "jillejr.newtonsoft.json-for-unity": "12.0.201",

    // ...
  }
}

// ...向manifest.json中的其余包发出信号,例如所有"com.unity.*"依赖项

flvlnr44

flvlnr442#

我发现合并Newtonsoft.json的最简单方法是转到NuGet site,然后手动下载该包。然后,将所有文件解压到assets目录下的“Plugins”文件夹中,即Assets/Plugins/Json. NET。
您还应该将Player Scripting Runtime Version设置为.NET 4.x。我还将API兼容性设置为.NET Standard 2.0。虽然推荐,但不是必需的。

相关问题