尝试运行 Fluent NHibernate 教程示例时出现运行时错误 [英] Runtime error when trying to run Fluent NHibernate tutorial example

查看:22
本文介绍了尝试运行 Fluent NHibernate 教程示例时出现运行时错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 http://wiki.fluentnhibernate.org/Getting_started 上完成了 Fluent NHibernate 教程并且项目编译良好.

I worked through the Fluent NHibernate tutorial at http://wiki.fluentnhibernate.org/Getting_started and the project compiles fine.

但是,我收到一个运行时错误并且我似乎无法解决它.您可以在教程中看到的 CreateSessionFactory 方法中发生错误.这是:

However, I am getting a runtime error and I can't seem to resolve it. The error is happening in the CreateSessionFactory method you can see in the tutorial. Here it is:

private static ISessionFactory CreateSessionFactory()
{
    return Fluently.Configure()
        .Database
        (
            SQLiteConfiguration.Standard
                .UsingFile(DbFile)
        )
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<FluentNHibernateSample.Program>())
        .ExposeConfiguration(BuildSchema)
        .BuildSessionFactory();

}

我认为最有帮助的事情是为您提供从最外层异常到最内层异常的异常链(是一个真实的词):

I think the most helpfule thing to do is to give you the Exception chain (is that a real word) from the Outermost exception to the inner most exception:

An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
    An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
        Could not compile the mapping document: (XmlDocument)
            persistent class FluentNHibernateSample.Entities.Employee, FluentNHibernate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null not found
                Could not load file or assembly 'FluentNHibernate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

教程不清楚如何设置参考(或者至少基于最内部的异常似乎不完整)所以我从 http://fluentnhibernate.org/downloads/releases/fluentnhibernate-1.1.zip 并将它们复制到 libs 文件夹中.基于谷歌搜索错误,我设置了对 FluentNHibernate、NHibernate 和 NHibernate.ByteCode.Castle 程序集的引用.我将下载页面中的所有 dll 复制到 bin 目录中,我认为所有引用都会解决.(这是我对其工作原理的理解).无论如何,这里是我复制到 bin 中的文件列表.

The tutorial was not clear on how to setup the reference (or at least seems incomplete based on the most inner exception) so I got the compiled assemblies from http://fluentnhibernate.org/downloads/releases/fluentnhibernate-1.1.zip and copied them into a libs folder. Based on googling the error I set a references to the FluentNHibernate, NHibernate, and NHibernate.ByteCode.Castle assemblies. I copied ALL of the dlls from the downloads page into the bin directory and I thought that all of the references would resolve. (That is my understanding of how it works). In any case here is the list of files I copied into bin.

Antlr3.Runtime.dll
FluentNHibernate.dll
FluentNHibernate.exe
FluentNHibernate.pdb
FluentNHibernate.vshost.exe
FluentNHibernate.vshost.exe.manifest
FluentNHibernate.xml
Iesi.Collections.dll
Iesi.Collections.xml
log4net.dll
log4net.xml
NHibernate.ByteCode.Castle.dll
NHibernate.dll
NHibernate.xml

我还将 System.Data.Sqlite 程序集复制到 bin.

I also copied System.Data.Sqlite assembly to the bin.

对于我的生活,我无法弄清楚问题是什么.我已经尝试了我能想到的所有方法并在谷歌上搜索了多个错误消息,但没有任何效果对我有用.

For the life of me I cannot figure out what the problem is. I have tried everything I can think of and googled multiple error messages but nothing has worked for me.

帮助!我在这上面浪费了几个小时.

Help! I have wasted hours on this.

编辑
我已将项目的源文件放在 http://dl.dropbox.com/u/8824836/FluentNHibernateExample.zip.请记住,要完全复制我的环境,您需要将 here 进入您的 output/bin 目录.

EDIT
I have put the source files for the project at http://dl.dropbox.com/u/8824836/FluentNHibernateExample.zip. Keep in mind that to fully replicate my environment you need to put all of the files from here into your output/bin directory.

赛特

推荐答案

我觉得自己像个白痴,但归根结底,映射问题是由于我将项目命名为 FluentNHibernate(在我自己的防御它在一个 SAMPLES 文件夹中),但这导致映射失败.

I feel like an idiot for this but at the end of the day the mapping problem was caused by the fact that I had named the project FluentNHibernate (in my own defense it was in a SAMPLES folder) but that was causing the mapping to fail.

在内部,Visual Studio 将程序集名称默认为 FluentNHibernate,这导致了运行时错误.将程序集重命名为 ConsoleApplication 修复了它.

Internally Visual Studio defaulted the Assembly name to FluentNHibernate and that was causing the runtime error. Renaming the assembly to ConsoleApplication fixed it.

赛特

这篇关于尝试运行 Fluent NHibernate 教程示例时出现运行时错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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