NHibernate - 缺少dll

时间:2010-08-26 10:04:30

标签: nhibernate castle

此次电话

// this._cfg是一个NHibernate配置实例
this._sessionFactory = this._cfg.BuildSessionFactory();

在运行时给出这个异常(不是在编译时)。

无法加载文件或程序集“NHibernate.ByteCode.Castle”或其依赖项之一。系统找不到指定的文件。“:”NHibernate.ByteCode.Castle

好到目前为止。但事实是,这个代码在类库项目中运行,我在该项目中引用了NHibernate.ByteCode.Castle(以及所有其他NHibernate dll)。

Wierder:我可以通过另外引用调用我的类库的Windows WPF可执行项目中的NHibernate dll来修复异常。但Windows WPF可执行文件不包含直接使用NHibernate的代码(如下所示:它在没有任何NHibernate引用的情况下编译良好)。发生什么了?显然,在实际使用NHibernate的项目中引用NHibernate.ByteCode.Castle是不够的。谁知道为什么?

2 个答案:

答案 0 :(得分:5)

我知道这已经过时了,但我为修复依赖问题所做的工作很简单:

在我的UnitOfWork中,我添加了一个静态方法:

private static void bringCastleDamnit()
{
   var pf = new NHibernate.ByteCode.Castle.ProxyFactoryFactory();
}

然后,只有这样,MSBuild才会看到它是必需的,并将其复制到我的输出目录中,用于引用我的Data项目的我的(asp.net和控制台)应用程序。

答案 1 :(得分:1)

我根本不会引用城堡字节码工厂;只需确保它(以及所有其他所需的依赖项)使用构建后步骤复制到输出目录。