【问题标题】:How to use System.Xml.Linq in Unity C# Script?如何在 Unity C# 脚本中使用 System.Xml.Linq?
【发布时间】:2013-07-31 14:51:21
【问题描述】:

使用 unity 和 c# 以及当我尝试这些行时

using System.Xml.Linq;

我收到此错误

类型或命名空间名称Linq' does not exist in the namespace System.Xml'。您是否缺少程序集参考?

所以在网上查了很多,发现Linq会出问题,需要在MonoDevelop中手动添加引用。所以我在那里添加了一个参考(通过右键单击解决方案窗格中的参考,单击编辑参考并浏览 System.Xml.Linq)

还是没有运气,

有什么想法吗?

【问题讨论】:

标签: c# linq unity3d monodevelop q


【解决方案1】:

我认为这篇 SO 帖子会回答您的问题...

https://stackoverflow.com/a/875704/1246574

这与您遇到的问题几乎相同。

【讨论】:

  • 谢谢,这正是我所需要的!显然错过了那个
  • 实际上,我现在正在删除支票。虽然答案帮助我在 MonoDevelop 中编译,但 Unity 仍然检测到错误。必须有一些其他的设置我需要改变。我都检查了我的 Mono / .NET 版本(它已经是 3.5)并在我的解决方案窗格中添加了 System.Xml.Linq 参考
【解决方案2】:

您不能手动修改 monodevelop(或 Visual Studio)解决方案或项目。因为它们是由 Unity 生成的。即使您对其进行了修改,Unity 也可以在重新生成解决方案文件时覆盖您的更改。

您不能使用某些命名空间的原因是您在 Unity 项目设置中选择了 .net/mono 版本。

在此文档http://docs.unity3d.com/Documentation/Manual/class-PlayerSettings.html 中搜索“API 兼容性级别”

来吧,停止修改生成的代码文件。这是 2013 年!

【讨论】:

  • 感谢您提供的信息,真不敢相信我从未在任何地方在线看到此内容。这似乎是一个重要的问题。反正我周末回来上班去看看
  • 希望对您有所帮助。如果可行,请不要忘记为社区标记答案。顺便说一句,我不想​​在我的 Unity 开发中使用 Linq。有些东西告诉我不要这样做。
  • 仍然没有运气,请参阅我的解决方案答案......现在我明白你为什么试图避免使用 Linq。有什么选择?
  • Unity 支持 .NET 3.5 和 Linq。您在项目设置中看不到 3.5 的原因是所有 .NET 版本都是基于 2.0 版构建的。如果您选择完整的 .net 模式(“子集”除外),您应该能够在代码中使用 Linq。但是,我仍然不推荐。
  • API 兼容级别 = .Net 2.0(不是子集)是该问题的真正答案。你应该标记这个。
【解决方案3】:

来自this 的帖子,我发现Unity 默认不支持.NET 3.5(这是使用Linq 所必需的)。在 Xtro 谈到的设置中,您只能选择 .NET 2.0。相反,您需要像纹理一样将所需的 .dll 文件拖到 Unity 中。有点骇人听闻,但它有效。再一次,就像 Xtro 所说,没有理由编辑 MonoDevelop 设置。它们对最终编译没有影响。

编辑:有关替代解决方案,请参阅 Xtro 的答案。他能够通过将 API 兼容级别更改为 .NET 2.0(不是子集)来使 Linq 工作。

编辑 2:我今天刚刚从 Unity 4.1 更新到 4.2,并得到一个错误,即 Linq 被定义了两次。通过删除.dll,我解决了错误。注意我仍在使用 .NET 2.0 子集。看起来他们默认添加了 Linq 支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-27
    • 2022-06-28
    • 2020-02-14
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    相关资源
    最近更新 更多