免费国产网站_秋霞午夜一区二区三区视频_99热在线看_日韩精品久久一区二区_午夜看一级毛片_天天鲁在视频在线观看

  • 您的位置:首頁 > 新聞動態 > Unity3D

    Unity3D引用dll打包發布的問題及解決

    2018/9/12??????點擊:

    今年我們開始使用Unity3D開發MMORPG,腳本語言使用C#,這樣我們就可以使用以往積累的許多類庫。但是,在U3D中使用.NET dll的過程并不是那么順利,比如我們今天遇到的這種問題。

    一.問題出現

    我們在當前的一個U3D項目中使用了StriveEngine作為通信組件與服務端進行通信,在U3D環境中,編譯運行一切正常,但在打包發布(Build)為PC版本可執行文件時,卻出現錯誤:“ArgumentException: The Assembly System.Management is referenced by StriveEngine. But the dll is not allowed to be included or could not be found.”

    初,我以為是簽名或者是加密混淆的問題,于是我使用原始編譯生成的StriveEngine.dll,問題一樣存在。

    接著,我再猜測可能是StriveEngine.dll編譯時選擇平臺的問題,于是把目標平臺由anycpu更改為x86,重新生成StriveEngine.dll,并且在u3d打包發布也選擇x86。

    二.解決方案

    經過一番折騰,終于發現需要設置一下U3D所使用的.NET版本 -- 點擊Player Settings按鈕,找到Api Compatibility Level選項,選擇".Net 2.0",而非".Net 2.0 Subset",如下圖所示:

    這個選項的意思是說,要使用.NET 2.0的完整版本,而非其子集。經過此設置,終于可以打包發布成功。

    究其原因,看來是因為StriveEngine所使用的是完整版本.NET 2.0。

    三.又現困境

    由于我們的游戲會打算發布一個輕量級的Web版本,于是,我們嘗試將其打包發布為Web版,god,同樣的問題又出現了,而且,在發布Web版本的情況下,Api Compatibility Level是不可選擇的。 

    猜測發布Web版本只能使用.Net 2.0 Subset。

    四.如何走出困境?

    如果發布Web版本就只能使用.Net 2.0 Subset這個猜想是正確的,那么,我想基于.Net 2.0 Subset開發一個StriveEngine.U3D.dll,使其可以被打包發布到各種不通類型的平臺。可是,.Net 2.0 Subset 具體指的是哪個子集了?是.NET Compact Framework?還是SilverLight提供的.NET Framework?抑或是其它?

    主站蜘蛛池模板: 秦安县| 林甸县| 安义县| 淅川县| 改则县| 嘉禾县| 阳山县| 德安县| 基隆市| 深圳市| 宝鸡市| 德惠市| 泰安市| 竹山县| 綦江县| 宣化县| 鹿泉市| 连山| 丰原市| 阿拉尔市| 蓝田县| 冕宁县| 吉安市| 新乐市| 鲁山县| 湾仔区| 文登市| 洛隆县| 磐安县| 隆昌县| 稷山县| 繁昌县| 休宁县| 来凤县| 会理县| 茶陵县| 军事| 绵竹市| 永泰县| 甘德县| 乐安县|