2013-08-29 44 views
8

我试图在Unity项目中构建一个REST服务器,并且最初认为南希看起来是明显的选择。很多头痛之后然而,我还是遇到了麻烦南希统一单声道运行时中运行 - 我可以编译和运行Xamarin但团结给了我而无益的输出whne我尝试使用资产:在Unity3d中运行REST服务器

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 

我不能成为唯一一个尝试过这样的东西的人,并且希望跨越多个项目来使用它,因此重复使用是重中之重 - 任何人都可以成功实现这样的事情,如果可以的话,你可以给我任何指针?

我真的很想让Nancy工作,但另一种轻松嵌入REST服务器的方式也同样重要。

+0

只是一个长期的 - 但是这不是一个.NET版本的问题?最后我使用Unity3d的版本仍然在Mono的2.x版本上,并宣称自己正在使用.NET 2.0运行时的“子集”。在实践中,我发现我可以使用后来的.NET版本的各种功能,但没有全部。另一方面,如果我没有弄错Nancy的目标是从.NET 3.5向前工作(但不是旧版本)。 –

+0

也发现这个:http://answers.unity3d.com/questions/636739/reflectiontypeloadexception.html –

回答

0

this thread on Unity Answers,它的发生是因为统一使用.NET子集不包括的System.Web,所以复制System.Web.dll程序V2.0.50727该项目解决了这个问题。

但是,如果内存服务,我想起Unity中的一个选项,强制它使用完整的.NET 2.0运行时而不是子集,这也可能解决问题。自从我使用Unity以来,这一段时间可能会被删除。

编辑:See here它被称为“兼容性级别”。

编辑2:它在Player Settings

0

我从来没有设法得到一个HTTP服务器的统一客户端内运行,(接受的答案看起来正确,但为时已晚我测试了一下,让我知道它是否不起作用),至少在统一中4似乎排除了单声道运行时的必要部分。事情可能会有所不同5,我目前没有团结一致,所以恐怕我没有及时更新。

考虑到这一点,我选择的解决方案是使用外部服务器的监听http客户端 - 这种方式运行得相当好,但事情变得稍微复杂一些。

我后来听说的另一个解决方案是使用Thrift协议,在https://github.com/amilstead/unity3d-thrift-twisted上有一个例子,它应该足以开始使用,并且在各种语言中支持Thrift,成语有点与http的不同,但通常这可能更适合您希望嵌入http服务器的大多数情况。