为什么要用不同的类型编译?

时间:2019-05-15 16:21:48

标签: unity3d dll il2cpp

错误:

IL2CPP error for type 'Namespace.SubNamespace.MyClass/<MyIEnumeratorFunc>d__20' in assembly 'Path\MyUnityProject\Temp\StagingArea\Data\Managed\VisualStudioSolutionName.dll'
Additional information: Interface System.Collections.Generic.IEnumerator`1<System.Object> method T System.Collections.Generic.IEnumerator`1<System.Object>::get_Current() not implemented on non-abstract class Namespace.SubNamespace.MyClass/<MyIEnumeratorFunc>d__20

团结期待System.Collections.IEnumerator,我尝试使用IEnumerator:

  1. 我试图直接写

    private System.Collections.IEnumerator MyIEnumeratorFunc(){}
    
  2. 我尝试删除

    using System.Collections.Generics;
    

    并将其附加到每个列表/词典条目 一切都可以在编辑器中运行,但出现上述错误: 似乎它尝试使用System.Collections.GENERICS.IEnumerator。

此外,如果我使用源代码(而不是.dll),该错误就会消失

此外,您可以通过使用任何IEnumerator / async函数(甚至为空)创建.dll并为iOS构建来重现它。

1 个答案:

答案 0 :(得分:0)

问题出在项目名称中。 解决方法是

  1. 在解决方案资源管理器中右键单击项目名称(不是解决方案名称)。

  2. 属性

  3. “应用程序”标签

  4. 程序集名称->设置为与.dll文件名相同的文件名(不带“ .dll”)