2014-03-13 84 views
2

統一內部編譯器錯誤我花了一些時間,試圖解決我在網上找到,但沒有工作所以這裏是我的Stackoverflowers問題。與自定義DLL

我爲Unity製作了一個小插件,並將dll導入到了我的項目文件夾中。它工作正常,當我啓動編輯器內的比賽,但如果我嘗試編譯,我得到以下幾點:

Internal compiler error. See the console log for more information. output was: 
Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded. 

    at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool) 

    at System.Reflection.Assembly.GetTypes() [0x00000] in <filename unknown>:0 

    at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0 

    at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0 

    at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0 

    at Mono.CSharp.Driver.LoadReferences() [0x00000] in <filename unknown>:0 

    at Mono.CSharp.Driver.Compile() [0x00000] in <filename unknown>:0 

    at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 

我做了什麼至今:

  • 我的DLL是在資產的Plugins文件夾
  • 試圖放置DLL(也)在項目根
  • 試圖使用和不使用的命名空間
  • 在Unity
設置.NET 2.0

順便說一下,它在Unity編輯器中工作正常,所以應該很清楚,我按照正式的插件製作指南中的說明做了正確的選擇。

感謝您的任何幫助

+1

爲什麼C++標記? – Raxvan

+0

不知道..因爲所有的Unity插件都是用C++編寫的dll – SteakOverflow

回答

0

對於什麼平臺,你試圖編譯腳本?

如果你正在爲iOS做這件事,請確保你沒有在DLL中聲明任何事件。

我有這個問題,我最終刪除它們。

+0

很高興知道,謝謝。 – SteakOverflow

2

當我刪除該dll從插件文件夾,而只留下是它的複製品在項目的根文件夾,它的工作

因此,在這種情況下,解決方案是將dll僅留在項目的根文件夾和其他地方。

我不確定爲什麼,但問題的一部分仍然是開放的。

1

,我需要做的事情是從.NET 2.0的子集的API兼容性級別更改爲.NET 2.0。突然一切都很好。線程任務可能會遇到一些問題。

請參閱reference