進口從here的閒聊網dll文件到我的項目並運行後內部編譯器錯誤集成嘰裏咕嚕網與Unity3d
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與他們的Unity代碼集成在一起。任何人都可以闡明如何做到這一點,或者讓我指向另一個圖書館嗎?我非常希望能夠在我的項目中使用XMPP。
感謝
編輯
感謝@Calvin提供您有用的響應,並幫助我深入到這個問題。
步驟來解決:
- 編譯在MonoDevelop中的DLL中剝離出來System.Drawing中和System.Windows.Form後(更改構建目標是庫而不是可執行文件)
- 導入的dll文件插件文件夾中(不是隨機文件夾)
- 變化的統一建目標是淨2.0(未淨2.0子集),並指示它剝去字節碼
- 刪除SystemAssemblies夾強制重新編譯
死後
...這方法似乎最終失敗。編譯爲ios似乎打破了ExecutionEngineException的依賴鏈:試圖JIT編譯方法'(包裝託管到本機)System.Threading.Interlocked:CompareExchange(jabber.protocol.ProtocolHandler &,jabber.protocol.ProtocolHandler,jabber.protocol .ProtocolHandler)',而且只能運行。
出於好奇,你使用的是單聲道動態鏈接庫嗎?我相信Unity是基於Mono而不是Microsoft .NET框架的。 – ravuya
是的,我正在使用單聲道DLL。 – jeremyong
jabber-net網站沒有說明它支持哪個版本的.Net。您可能需要在MonoDevelop中從源代碼編譯它,然後查看是否有構建選項來定位.Net 2.0。 – Calvin