Encog DLL在Unity? [英] Encog dll in Unity?

查看:362
本文介绍了Encog DLL在Unity?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想实现Encog统一。
当我把dll的资产,没有发生错误。我甚至可以创建没有错误的新的神经网络。



当我粘贴XOR例子脚本,我得到如下图所示的错误。我GOOGLE了它的主题相关的Encog使用的的arent覆盖在Unity单行为C#的部分。



有人说我应该使用.NET框架3.5生成的DLL,但是当我尝试加载解决方案文件在Visual Basic中,我得到类似这样的另一个错误:

 错误1类型或命名空间名称' \Programs\Unity\\\
cog\encog-DOTNET核心 - 3.2.0\encog - 核心 - :任务的System.Threading(是否缺少程序集引用)C'不会在命名空间存在' cs\Util\Concurrency\Job\ConcurrentJob.cs 24 24 encog核-CS

我试图修改的build.bat包括encog源,使得它使用路径到3.5框架:
C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild(这将编译没有错误/警告)
,但是当我尝试使用此DLL团结,我得到同样的错误与DLL上encog网站normaly分配。



错误团结尝试与XOR

 内部编译器错误安全示例脚本时。看到控制台日志的详细信息。产量:
未处理的异常:System.TypeLoadException:未能从程序集加载类型Encog.ML.Train.BasicTraining'encog核-CS,版本= 3.2.0.0,文化=中性公钥= 3e882172b12155d4 。

。在(包装管理到本机)System.MonoType:GetMethodsByName(字符串,System.Reflection.BindingFlags,布尔,System.Type的)

。在System.MonoType。的getMethods(的BindingFlags bindingAttr)[0x00000]上述<文件名不明> 0

在Mono.CSharp.MemberCache.AddMethods(BF的BindingFlags,System.Type的类型)[0x00000]上述<文件名不明> :0
$在Mono.CSharp.MemberCache.AddMethods(System.Type的类型)[0x00000]上述< b $ b:文件名不明> 0
$在Mono.CSharp.MemberCache b $湾.ctor(IMemberContainer容器)[0x00000]上述<文件名不明>:在Mono.CSharp.TypeHandle..ctor(System.Type的类型)[0x00000] 0

上述<文件名未知的计算值: 0

在Mono.CSharp.TypeHandle.GetTypeHandle(System.Type的T)[0x00000]上述<文件名不明> 0

在Mono.CSharp.TypeHandle.GetMemberCache (System.Type的T)[0x00000]上述<文件名不明> 0

在Mono.CSharp.TypeManager.LookupMemberCache(System.Type的T)[0x00000]上述<文件名不明>:0
$ b在Mono.CSharp.TypeHandle..ctor(System.Type的类型)$ b [0x00000]上述<文件名不明> 0

在Mono.CSharp.TypeHandle.GetTypeHandle (System.Type的T)[0x00000]上述<文件名不明> 0

在Mono.CSharp.TypeHandle.GetMemberCache(System.Type的T)[0x00000]上述<文件名不明>:0
$ b在Mono.CSharp.TypeManager.LookupMemberCache(System.Type的T)[0x00000] $ b上述<文件名不明> 0

在Mono.CSharp.TypeHandle..ctor (System.Type的类型)[0x00000]上述<文件名不明> 0

在Mono.CSharp.TypeHandle.GetTypeHandle(System.Type的T)[0x00000]上述<文件名不明>:0
$ b在Mono.CSharp.TypeHandle.GetMemberCache(System.Type的T)[0x00000] $ b上述<文件名不明> 0

在Mono.CSharp.TypeManager.MemberLookup_FindMembers( System.Type的T,MemberTypes吨,高炉的BindingFlags,System.String名,System.Boolean&安培; used_cache)[0x00000]上述<文件名不明>:在Mono.CSharp.TypeManager.RealMemberLookup(System.Type的invocation_type,System.Type的qualifier_type,System.Type的queried_type,MemberTypes吨0

,的BindingFlags original_bf ,System.String名,IList的almost_match)[0x00000]上述<文件名不明> 0

在Mono.CSharp.TypeManager.MemberLookup(System.Type的invocation_type,System.Type的qualifier_type,System.Type的queried_type,MemberTypes吨,的BindingFlags original_bf,System.String名,IList的almost_match)[0x00000]上述<文件名不明>:在Mono.CSharp.Expression.MemberLookup 0

(Mono.CSharp.CompilerContext CTX ,System.Type的CONTAINER_TYPE,System.Type的qualifier_type,System.Type的queried_type,System.String名,MemberTypes吨,高炉的BindingFlags,位置LOC)[0x00000]上述<文件名不明> 0

。在Mono.CSharp.Expression.MemberLookupFinal(Mono.CSharp.ResolveContext EC,System.Type的qualifier_type,System.Type的queried_type,System.String名,MemberTypes吨,高炉的BindingFlags,位置LOC)[0x00000]上述<文件名不明>:0
$ b在Mono.CSharp.New.DoResolve(Mono.CSharp.ResolveContext EC)[0x00000] $ b上述<文件名不明> 0

。在Mono.CSharp.Expression。解析(Mono.CSharp.ResolveContext EC,ResolveFlags标志)[0x00000]上述<文件名不明>:在Mono.CSharp.Expression.Resolve(Mono.CSharp.ResolveContext EC)0

[0x00000]上述<文件名不明> 0

在Mono.CSharp.Assign.DoResolve(Mono.CSharp.ResolveContext EC)[0x00000]上述<文件名不明> 0

。在Mono.CSharp.SimpleAssign.DoResolve(Mono.CSharp.ResolveContext EC)[0x00000]上述<文件名不明> 0

在Mono.CSharp.Expression.Resolve(Mono.CSharp.ResolveContext EC,ResolveFlags标志)[0x00000]上述<文件名不明>:上述< 0

在Mono.CSharp.Expression.Resolve(Mono.CSharp.ResolveContext EC)[0x00000]文件名不明计算值: 0

在Mono.CSharp.ExpressionStatement.ResolveStatement(Mono.CSharp.BlockContext EC)[0x00000]上述<文件名不明> 0

在Mono.CSharp.StatementExpression .Resolve(Mono.CSharp.BlockContext EC)[0x00000]上述<文件名不明> 0

在Mono.CSharp.Block.Resolve(Mono.CSharp.BlockContext EC)[0x00000]上述< ;文件名不明> 0

在Mono.CSharp.Block.Resolve(Mono.CSharp.BlockContext EC)[0x00000]上述<文件名不明> 0

。在Mono.CSharp.Block.Resolve(Mono.CSharp.BlockContext EC)[0x00000]上述<文件名不明> 0

在Mono.CSharp.ToplevelBlock.Resolve(Mono.CSharp.FlowBranching父母, Mono.CSharp.BlockContext RC,Mono.CSharp.ParametersCompiled IP,IMethodData MD)[0x00000]上述<文件名不明> 0


解决方案

这似乎是一个DLL支持的共同课题。我从人们试图Encog连接到Ninjatrader看到了类似的问题。 Ninjatrader的当前版本支持过时的(几个版本后)版本的.NET的,没有LINQ的支持。我认为Unity3D也有类似的问题。我不是Ninjatrader或Unity3D一个活跃的开发。我真的不想同时支持Ninjatrader和Unity3D版本(仅在一天这么多小时)。然而,净的更高版本支持LINQ中的一些非常实用的功能,以及非常先进的颚功能。



我想一个答案是创建一个非常基本的非LINQ /非平行那就是在过去10年中的任何.NET版本兼容。


I would like to implement Encog to Unity. When I put dll in assets, no errors occur. I can even create new neural networks with no errors.

When I paste XOR example to script, I get error shown below. I googled its somehow related that Encog uses parts of C# that arent covered in Unity mono behaviour.

Some people say that I should use dll built by net framework 3.5, but when I try to load solution file in visual basic, I get another errors similar to this:

Error   1   The type or namespace name 'Tasks' does not exist in the namespace 'System.Threading' (are you missing an assembly reference?)  C:\Programs\Unity\ncog\encog-dotnet-core-3.2.0\encog-core-cs\Util\Concurrency\Job\ConcurrentJob.cs  24  24  encog-core-cs

I tried modifying build.bat included with encog source so that it uses path to 3.5 framework: C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild (This compiles with no errors/warnings) but when I try to use this dll in unity, I get same error as with dll normaly distributed on encog site.

Error in unity when trying to safe example script with XOR

Internal compiler error. See the console log for more information. output was:
Unhandled Exception: System.TypeLoadException: Could not load type 'Encog.ML.Train.BasicTraining' from assembly 'encog-core-cs, Version=3.2.0.0, Culture=neutral, PublicKeyToken=3e882172b12155d4'.

  at (wrapper managed-to-native) System.MonoType:GetMethodsByName (string,System.Reflection.BindingFlags,bool,System.Type)

  at System.MonoType.GetMethods (BindingFlags bindingAttr) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.MemberCache.AddMethods (BindingFlags bf, System.Type type) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.MemberCache.AddMethods (System.Type type) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.MemberCache..ctor (IMemberContainer container) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeHandle..ctor (System.Type type) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeManager.LookupMemberCache (System.Type t) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeHandle..ctor (System.Type type) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeManager.LookupMemberCache (System.Type t) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeHandle..ctor (System.Type type) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeManager.MemberLookup_FindMembers (System.Type t, MemberTypes mt, BindingFlags bf, System.String name, System.Boolean& used_cache) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeManager.RealMemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.TypeManager.MemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Expression.MemberLookup (Mono.CSharp.CompilerContext ctx, System.Type container_type, System.Type qualifier_type, System.Type queried_type, System.String name, MemberTypes mt, BindingFlags bf, Location loc) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Expression.MemberLookupFinal (Mono.CSharp.ResolveContext ec, System.Type qualifier_type, System.Type queried_type, System.String name, MemberTypes mt, BindingFlags bf, Location loc) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.New.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Assign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.SimpleAssign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.ExpressionStatement.ResolveStatement (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.StatementExpression.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0 

  at Mono.CSharp.ToplevelBlock.Resolve (Mono.CSharp.FlowBranching parent, Mono.CSharp.BlockContext rc, Mono.CSharp.ParametersCompiled ip, IMethodData md) [0x00000] in <filename unknown>:0 

解决方案

This seems to be a common issue with DLL support. I've seen similar questions from people trying to connect Encog to Ninjatrader. The current version of Ninjatrader supports an outdated (several versions behind) version of .Net, with no LINQ support. I assume Unity3D has a similar issue. I am not an active developer in Ninjatrader or Unity3D. I really do not want to support both a Ninjatrader and Unity3D version (only so many hours in the day). Yet the later versions of .Net support some very useful features in LINQ, as well as very advanced palatalization features.

I suppose one answer would be to create a very basic non-LINQ/non-Parallel that is compatible to any .Net version within the last 10 years.

这篇关于Encog DLL在Unity?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆