C# 将nhibernate与Unity3D集成

C# 将nhibernate与Unity3D集成,c#,.net,unity3d,nhibernate,C#,.net,Unity3d,Nhibernate,我正在尝试将Nhibernate应用到我的Unity3D项目中 我的主要项目是编译到Unity 3.5 net完整基类库 我的第二个项目(带有Nhibernate引用的项目)被编译为.NETFramework 3.5(.dll文件被部署到Aseets/Plugins文件夹) 我使用的是Nhibernate 3.4.0.4000 Unity3D给出错误: “[……] 无法加载文件或程序集“NHibernate,版本=3.4.0.0,区域性=中性,PublicKeyToken=aa95f207798

我正在尝试将Nhibernate应用到我的Unity3D项目中

我的主要项目是编译到Unity 3.5 net完整基类库 我的第二个项目(带有Nhibernate引用的项目)被编译为.NETFramework 3.5(.dll文件被部署到Aseets/Plugins文件夹) 我使用的是Nhibernate 3.4.0.4000

Unity3D给出错误:

“[……] 无法加载文件或程序集“NHibernate,版本=3.4.0.0,区域性=中性,PublicKeyToken=aa95f207798dfdb4”或其依赖项之一。”

所以我也将NHibernate.dll和Iesi.Collections.dll复制到Assets/Plugins文件夹中

但它会产生另一个错误:

"

未处理的异常:System.Reflection.ReflectionTypeLoadException:无法加载模块中的类

at(包装器管理到本机)System.Reflection.Assembly:GetTypes(bool)

位于:0中的System.Reflection.Assembly.GetTypes()[0x00000]处

位于:0中的Mono.CSharp.RootNamespace.ComputeNamespaces(System.Reflection.Assembly,System.Type extensionType)[0x00000]

位于:0中的Mono.CSharp.RootNamespace.ComputeNamespace(Mono.CSharp.CompilerContext ctx,System.Type extensionType)[0x00000]

位于:0中的Mono.CSharp.GlobalRootNamespace.ComputeNamespaces(Mono.CSharp.CompilerContext ctx)[0x00000]

在0中的Mono.CSharp.Driver.LoadReferences()[0x00000]处

在0中的Mono.CSharp.Driver.Compile()[0x00000]处

在:0中的Mono.CSharp.Driver.Main(System.String[]args)[0x00000]处

无法加载类System.Configuration.IConfigurationSectionHandler,该类已在系统中使用,版本=2.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089 无法加载类System.CodeDom.Compiler.CompilerParameters,该类已在系统中使用,版本=2.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089

"

什么取决于IConfigurationSectionHandler以及在哪里可以找到它


谢谢,

将编译后的DLL文件放在
资产
文件夹中,而不是
资产/插件
文件夹中。如果您使用的是3.4.0版,在编译之前,打开所需的
Logging.cs
,并将字符串从
string baseDir=AppDomain.CurrentDomain.BaseDirectory
to
string baseDir=System.Environment.CurrentDirectory在第86行。它为此起了作用

还要确保在
资产
文件夹中有.NET数据库连接器DLL(
MySQL.Data.DLL

编辑


您还必须将Api兼容性级别从.Net 2.0子集更改为.Net 2.0,如OP所述。

您好,感谢您的快速回答。不幸的是,这没有帮助。我仍然有一个错误:类System.Configuration.IConfigurationSectionHandler无法加载,在系统中使用,版本=2.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089类System.CodeDom.Compiler.CompilerParameters无法加载,在系统中使用,版本=2.0.0.0,区域性=中性,PublicKeyToken=B77A5C561934E089下载nhibernate 3.4.0版本并重试。将Api兼容性级别从.Net 2.0子集设置为.Net 2.0解决了此问题。但如果不将DLL放入
资产/插件
目录并在我的答案中更改代码,则无法解决您的问题。如果这有助于您的解决方案,您可以接受它作为答案。仅仅将其更改为NET2.0并不能解决问题。