【发布时间】: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.UI 和UnityEngine.EventSystems 的引用。但是当我运行上述命令时,我得到以下编译错误:
错误 CS0234:命名空间“UnityEngine”中不存在类型或命名空间名称“EventSystems”。您是否缺少程序集参考?
根据我通过谷歌搜索找到的信息,这似乎是人们在使用 4.6 之前的程序集时遇到的错误,因为那是同时引入 EventSystems 和 UI 的时候。但我不知道我怎么会在我引用的 dll 中丢失它,因为 Unity 5 是唯一接触过这台计算机的版本。
附带说明,我已将此问题发布到 Unity Answers,但尚未收到回复。我预计这是因为汇编编译超出了大多数用户选择承担的范围。因此我在这里问它。
【问题讨论】:
-
你能用 Reflector 或类似工具打开
UnityEngine,看看里面是否有预期的类型吗? -
一些到达这里的用户可能想知道,为了解决这个问题,有时您需要将类文件放在名为 Editor 的文件夹中,例如用于 TestTools 等。
标签: c# unity3d mono .net-assembly