错误CS0246:找不到类型或名称空间名称'Newtonsoft'

时间:2019-07-24 00:52:02

标签: c# unity3d json.net

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

通过Unity运行时,该应用程序将按预期运行。但是,当尝试在Unity中构建应用程序以使用Lumin平台将其导出到Magic Leap时,由于提到的编译器错误,该应用程序失败。在Assets文件夹下有一个包含相应文件的JsonDotNet文件夹。项目设置->播放器->其他设置下的设置似乎已正确设置(脚本运行时版本-> .NET 4.X等效)(Api兼容级别-> .NET 4.x)。在Visual Studio->管理nuget解决方案中,找到json.net。我知道也有类似的问题,但我们一直在尝试解决这些问题,但无济于事。我们也尝试过在JsonDotNet文件夹中移动,但是似乎在编译时找不到统一性。

2 个答案:

答案 0 :(得分:0)

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

另一种方法是使用Newtonsoft从Asset Store中使用json.net(免费),但是我选择了前一种方法,因为我希望我的外部DLL(不是Unity项目的一部分,编译到Assets文件夹中)相同版本的json.net。

hth

答案 1 :(得分:-1)

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

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

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

堆栈溢出。最大努力dfl。