2009-06-21 65 views
4

我使用FluentNHibernate并在配置阶段,我收到以下错误:为“NHibernate.Cfg.Configuration”的类型初始值引发了异常

下面是配置:

公共静态ISessionFactory CreateSessionFactory () { 返回 Fluently.Configure()。数据库( MsSqlConfiguration.MsSql2000.ConnectionString( C => c.FromConnectionStringWithKey( “HighOnCodingConnectionString”))) .Mappings(M =>
m.FluentMappings.AddFromAssemblyOf()) .BuildSessionFactory(); }

这里是错误:

[失效] when_instantiating_a_session_factory.should_be_able_to_create_a_session_factory TestCase的 'when_instantiating_a_session_factory.should_be_able_to_create_a_session_factory' 失败:对于 'NHibernate.Cfg.Configuration' 的类型初始值引发异常。 System.TypeInitializationException异常 消息:'NHibernate.Cfg.Configuration'的类型初始值设定项引发异常。 来源:NHibernate的 堆栈跟踪: 在NHibernate.Cfg.Configuration..ctor() C:\ FluentNHibernate \ SRC \ FluentNHibernate \ CFG \ FluentConfiguration.cs(25,0):在FluentNHibernate.Cfg.FluentConfiguration..ctor( ) C:\ FluentNHibernate \ src \ FluentNHibernate \ Cfg \ Fluently.cs(16,0):at FluentNHibernate.Cfg.Fluently.Configure() C:\ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCoding.BusinessObjects \工厂\ SessionFactory.cs(17,0):在HighOnCoding.BusinessObjects.Factories.SessionFactory.CreateSessionFactory() C:\ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCoding.TestSuite \ Configuration \ TestFluentNHiberate.cs(17,0 ):在HighOnCoding.TestSuite.Configuration.when_instantiating_a_session_factory.should_be_able_to_create_a_session_factory() 内部异常 System.IO.FileLoadException 消息:定位的程序集清单定义与程序集引用不匹配。 (异常来自HRESULT:0x80131040) 来源:NHibernate的 堆栈跟踪: 在NHibernate.Cfg.Configuration..cctor()

这里是FusionLog事日志信息:

*大会粘结剂日志条目( 6/21/2009 @ 12:49:38 PM)*

操作失败。 绑定结果:hr = 0x80070002。该系统找不到指定的文件。 C:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \的Mscorwks.dll 运行下的可执行C:

大会经理从装\项目\ highoncodingmvc的\ src \ highoncoding的\ src \ HighOnCodingConsole \ BIN \调试\ HighOnCodingConsole.exe ---详细的错误日志如下。

===预绑定状态信息=== 日志:User = D9SKQBG1 \ AzamSharp LOG:DisplayName = NHibernate.XmlSerializers,Version = 2.0.1。4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4,processorArchitecture = MSIL (完全指定) LOG:Appbase = file:/// C:/ Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/ LOG :初始PrivatePath = NULL LOG:动态基地= NULL LOG:高速缓存基址= NULL LOG:AppName的= NULL

调用组件:的System.Xml,版本= 2.0.0.0,文化=中性公钥= b77a5c561934e089。

LOG:此绑定在默认加载上下文中启动。 日志:使用应用程序配置文件:C:\ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCodingConsole \ bin \ Debug \ HighOnCodingConsole.exe.Config LOG:使用c:\​​ WINDOWS \ Microsoft.NET \ Framework中的计算机配置文件\ V2.0.50727 \ CONFIG \ machine.config中。 日志:后策略引用:NHibernate.XmlSerializers,版本= 2.0.1.4000,文化=中性,PublicKeyToken = aa95f207798dfdb4,processorArchitecture = MSIL 日志:GAC查找不成功。 日志:试图下载新的URL文件:/// C:/Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers.DLL。 日志:尝试下载新的URL文件:/// C:/Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers/NHibernate.XmlSerializers.DLL。 日志:试图下载新的URL文件:/// C:/Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers.EXE。 日志:试图下载新的URL文件:/// C:/Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers/NHibernate.XmlSerializers.EXE。 LOG:所有探测URL尝试失败。

回答

2

看起来你已经针对程序集的一个版本进行了编译,但是在执行时它正在寻找另一个版本并抱怨。我建议你turn on Fusion logging找出发生了什么 - 特别是造成问题的确切组装。

+0

但是这怎么可能!我刚刚从FluentNHibernate网站获得了DLL,并手动添加了对所有程序集的引用! – azamsharp 2009-06-21 17:43:11

2

我知道这是早就解决了,但今天已经有这个问题我自己,我发现这是我个人的解决方案,我想我会分享知识:

https://forum.hibernate.org/viewtopic.php?p=2399679

从帖子:

“我的Visual Studio调试器被设置为打破所有异常,调整异常设置解决了我的问题。”

也促使我:

http://www.codewrecks.com/blog/index.php/2008/02/13/sgenexe-and-strongly-named-assemblies/

“一些搜索我发现xxxx.XmlSerializers组件是预先生成组件的xmlserializers查找试图生成一个在运行时之前后.. “

相关问题