2

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

using System.Xml.Linq;

我收到这个错误

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

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

还是没有运气,

有任何想法吗?

4

3 回答 3

2

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

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

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

于 2013-07-24T14:49:03.467 回答
0

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

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

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

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

于 2013-07-25T14:06:49.470 回答
0

这篇文章中,我发现 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 支持。

于 2013-07-28T06:15:19.760 回答