首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将jabber-net与Unity3d集成的内部编译器错误

将jabber-net与Unity3d集成的内部编译器错误
EN

Stack Overflow用户
提问于 2012-10-31 22:03:10
回答 1查看 1.5K关注 0票数 5

将jabber-net dll从这里导入到我的项目并运行之后

代码语言:javascript
复制
using UnityEngine;
using System.Collections;
using jabber;
using jabber.client;
using jabber.connection;

public class XMPP : MonoBehaviour {

    jabber.client.JabberClient jC;

        // Use this for initialization
        void Start () {
        jC = new JabberClient();
    }
}

团结一致地抱怨:

内部编译器错误。有关更多信息,请参见控制台日志。输出是:未处理的异常: System.TypeLoadException:未能从程序集'jabber-net,Version=2.1.0.710,Culture=neutral,PublicKeyToken=924c5b18328d6f09‘加载类型'jabber.connection.XmppStream’。

我读到过其他人(极少数)设法将jabber-net与他们的统一代码集成在一起。有人能解释一下这是怎么做到的吗?或者告诉我另一个图书馆?我非常希望能够在我的项目中使用XMPP。

谢谢

编辑

谢谢卡尔文提供了你的帮助,并帮助我钻研这个问题。

解决问题的步骤:

  1. 去掉System.Drawing和System.Windows.Form (将构建目标改为库而不是可执行)后,以单开发方式编译dll。
  2. 导入插件文件夹中的dll(不是随机文件夹)
  3. 将Unity目标更改为Net2.0(而不是Net2.0子集),并指示它剥离字节码
  4. 删除SystemAssemblies文件夹以强制重新编译

死后

还有..。这种做法似乎最终失败了。编译到ios似乎打破了依赖链与ExecutionEngineException:试图JIT编译方法‘(包装托管到本地) System.Threading.Interlocked:CompareExchange (jabber.protocol.ProtocolHandler&,jabber.protocol.ProtocolHandler,jabber.protocol.ProtocolHandler),而运行时,只有-aot-。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-01 16:18:23

我只是在MonoDevelop中编译了2005-jabber-net解决方案,并将其添加到一个Unity3.5.6项目中,而不产生一个编译器错误。

该解决方案引用了System.Drawing和System.Windows.Forms,而Unity不支持它们。我删除了这些内容,将编译目标更改为"Library",并将2005-jabber-net.dll、netlib.Dns.dll和zlib.net.dll复制到了Unity中。

您的示例代码在附加到GameObject时编译并运行,但我没有进一步测试。

编辑:刚刚实现了这个程序集可能需要Unity,因为.Net套接字访问是限制在免费版本的团结。

双重编辑:我拿回来,刚刚检查了他们的产品比较图表,现在.Net套接字列在免费版本的团结。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13168104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档