【问题标题】:Why am I getting the following error when compiling this assembly?为什么在编译此程序集时出现以下错误?
【发布时间】:2015-06-09 04:31:01
【问题描述】:

我正在尝试使用以下命令行命令从我的项目中编译代码的程序集:

C:/"Program Files"/Unity/Editor/Data/Mono/bin/gmcs 
-target:library -out:C:/Users/Austin/Desktop/PixelExpanse.dll 
-recurse:C:/Users/Austin/Desktop/Projects/Repos/trunk/PixelExpanse/SpaceColonyRefactor/Assets/Source/*.cs 
-d:RUNTIME -r:C:/"Program Files"/Unity/Editor/Data/Managed/UnityEngine.dll

如您所见,我相信我正确地引用了UnityEngine.dll。 将被编译的代码包含对UnityEngine.UIUnityEngine.EventSystems 的引用。但是当我运行上述命令时,我得到以下编译错误:

错误 CS0234:命名空间“UnityEngine”中不存在类型或命名空间名称“EventSystems”。您是否缺少程序集参考?

根据我通过谷歌搜索找到的信息,这似乎是人们在使用 4.6 之前的程序集时遇到的错误,因为那是同时引入 EventSystems 和 UI 的时候。但我不知道我怎么会在我引用的 dll 中丢失它,因为 Unity 5 是唯一接触过这台计算机的版本。

附带说明,我已将此问题发布到 Unity Answers,但尚未收到回复。我预计这是因为汇编编译超出了大多数用户选择承担的范围。因此我在这里问它。

【问题讨论】:

  • 你能用 Reflector 或类似工具打开UnityEngine,看看里面是否有预期的类型吗?
  • 一些到达这里的用户可能想知道,为了解决这个问题,有时您需要将类文件放在名为 Editor 的文件夹中,例如用于 TestTools 等。

标签: c# unity3d mono .net-assembly


【解决方案1】:

UnityEngine.EventSystems 命名空间实际上出现在 UnityEngine.UI.dll 而不是 UnityEngine.dll 中,因此在手动编译时似乎也需要引用前者命令行。 Unity 项目默认有这个(见下文)。

这可以通过在您选择的反射器工具中打开组件来验证,这里我使用的是 JetBrains dotPeek

这是我的测试项目与默认 Unity 引用的显示方式。请注意,默认情况下,对 UnityEngine.UI 的引用已经出现在 Unity 创建的项目中:

当我通过 Unity 构建我的 Windnows 桌面应用程序时,上面的 dll 出现在:

驱动器>:projectOutFolder>\projectName>_Data\Managed

【讨论】:

    【解决方案2】:

    你可以试试:

    右击“项目面板”,在“全部重新导入”之后。

    这可能是由于平台之间的切换而发生的,例如IOS,或桌面..因此,文件夹被删除变得不必要了..

    帮我解决:Unity 5.2、Win 7、32bits;

    祝你好运!

    【讨论】:

    • 在 Mac 上也为我工作 - MacOS 10.15.5,Unity 2019.3.10f1
    【解决方案3】:

    我检查了 UnityEngine.dll 并且未包含 Eventsystems/UI 命名空间。尽管如此,Unity5\Editor\Data\UnityExtensions\Unity\GUISystem\UnityEngine.UI.dll 中有一个 dll,其中包含这些命名空间。

    【讨论】:

    • 上升。那是一个错字。我的意思是事件系统
    • 谢谢。不过这很有趣,那么我想知道这是他们的一个 doco 错误吗?
    • 我不确定,但它被声明为“扩展”并且 UI 是一个开源组件。也许保持这种方式会更好
    【解决方案4】:

    对于 mac,它是 /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll

    【讨论】:

      猜你喜欢
      • 2013-08-14
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 2023-03-30
      • 2021-07-06
      • 1970-01-01
      相关资源
      最近更新 更多