C# 尝试运行Fluent NHibernate教程示例时出现运行时错误
我在上完成了流畅的NHibernate教程,项目编译得很好 然而,我得到一个运行时错误,我似乎无法解决它。错误发生在您可以在教程中看到的CreateSessionFactory方法中。这是:C# 尝试运行Fluent NHibernate教程示例时出现运行时错误,c#,nhibernate,visual-studio-2010,fluent-nhibernate,assembly-resolution,C#,Nhibernate,Visual Studio 2010,Fluent Nhibernate,Assembly Resolution,我在上完成了流畅的NHibernate教程,项目编译得很好 然而,我得到一个运行时错误,我似乎无法解决它。错误发生在您可以在教程中看到的CreateSessionFactory方法中。这是: private static ISessionFactory CreateSessionFactory() { return Fluently.Configure() .Database ( SQLiteConfiguration.Standa
private static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database
(
SQLiteConfiguration.Standard
.UsingFile(DbFile)
)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<FluentNHibernateSample.Program>())
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
}
教程不清楚如何设置引用(或者至少基于最内部的异常,它似乎不完整),所以我从中获取编译的程序集,并将它们复制到libs文件夹中。通过谷歌搜索错误,我设置了对FluentNHibernate、NHibernate和NHibernate.ByteCode.Castle程序集的引用。我将下载页面中的所有DLL复制到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
就我的一生而言,我无法弄清问题出在哪里。我已经尝试了我能想到的一切,并在谷歌上搜索了多条错误消息,但没有任何效果
救命啊!我在这上面浪费了好几个小时
编辑我已将项目的源文件放在。请记住,要完全复制我的环境,需要将中的所有文件放入output/bin目录 赛斯您可能还需要:
- Castle.Core.dll
- Castle.dynamicProxy 2.dll
- Castle.Core.dll
- Castle.dynamicProxy 2.dll
- 您可能还需要:
- 仅仅因为您的fluent NHibernate项目进行了编译,并不意味着您的映射是正确的
外部异常(与
FluentNHibernate
程序集有关)可能是一种误导
试着注释掉所有的nhibernate映射,除了最简单、最容易的一点,然后看看它是否有效。如果是,则逐渐取消注释,直到找到失败的部分。仅仅因为您的fluent NHibernate项目已编译,这并不意味着您的映射是正确的 外部异常(与
FluentNHibernate
程序集有关)可能是一种误导
试着注释掉所有的nhibernate映射,除了最简单、最容易的一点,然后看看它是否有效。如果有,逐渐取消注释,直到找到失败的部分。下载Fluent NHibernate源代码发行版,然后查看示例项目;然后,您可以将这些项目与您的项目进行比较。下载Fluent NHibernate源代码发行版,然后查看示例项目;然后,您可以将这些项目的引用与您的项目的引用进行比较。对此,我觉得自己像个白痴,但最终导致映射问题的原因是,我将项目命名为FluentNHibernate(我自己辩护说,它位于示例文件夹中),但这导致了映射失败 Visual Studio内部将程序集名称默认为FluentNHibernate,这导致了运行时错误。将程序集重命名为ConsoleApplication修复了它
赛斯我觉得自己是个白痴,但最终导致映射问题的原因是我将项目命名为FluentNHibernate(在我自己的辩护中,它位于示例文件夹中),但这导致映射失败 Visual Studio内部将程序集名称默认为FluentNHibernate,这导致了运行时错误。将程序集重命名为ConsoleApplication修复了它
赛斯谢谢你的建议。如前所述,由于这些文件位于fluent nhibernate下载zip中,因此它们已添加到我的bin文件夹中。但是,根据您的建议,我在项目中向这些文件添加了引用。但我得到了同样的结果。谢谢你的建议。如前所述,由于这些文件位于fluent nhibernate下载zip中,因此它们已添加到我的bin文件夹中。但是,根据您的建议,我在项目中向这些文件添加了引用。但我得到了同样的结果。SethJames我正是这么想的,但是没有git我找不到获取源代码的方法。我还在svn上。我可以得到git(呵呵),因为它很小,但我想知道是否有一种方法可以在没有它的情况下获得源代码?Seth,现在是2010年,帮你自己一个忙,下载一个git客户端。乌龟(GUI)或msysgit(命令行)Seth:它们位于右边的底部;不过,它们只适用于单个版本,而不适用于特定版本。如果你想要1.1版的源代码,Github允许你下载标签的zip文件。James我当时也在想这个问题,但是没有git我找不到获得源代码的方法。我还在svn上。我可以得到git(呵呵),因为它很小,但我想知道是否有一种方法可以在没有它的情况下获得源代码?Seth,现在是2010年,帮你自己一个忙,下载一个git客户端。乌龟(GUI)或msysgit(命令行)Seth:它们位于右边的底部;不过,它们只适用于单个版本,而不适用于特定版本。如果您想要1.1版的源代码,Github允许您在中下载标签的zip。
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