为什么nhibernate在/bin/debug中查找hibernate.cfg.xml?

为什么nhibernate在/bin/debug中查找hibernate.cfg.xml?,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我有一个包含所有nhibernate代码的类库(使用fluent的域/映射) 现在,我正在控制台应用程序中进行一些简单的测试,我收到一个错误,它说在/bin/debug中找不到配置文件 我的文件位于/consoleTests/hibernate.cfg.xml中 为什么它会在控制台应用程序的/bin/debug文件夹中查找?这是在Visual Studio中运行时的当前目录。这就是您正在做的吗?如果您在调用Configure()方法时没有任何参数,那么我认为hibernate.cfg.xml必须

我有一个包含所有nhibernate代码的类库(使用fluent的域/映射)

现在,我正在控制台应用程序中进行一些简单的测试,我收到一个错误,它说在/bin/debug中找不到配置文件

我的文件位于/consoleTests/hibernate.cfg.xml中


为什么它会在控制台应用程序的/bin/debug文件夹中查找?

这是在Visual Studio中运行时的当前目录。这就是您正在做的吗?

如果您在调用
Configure()
方法时没有任何参数,那么我认为
hibernate.cfg.xml
必须与使用它的应用程序位于同一目录中

编译项目时,它会被编译到
bin/debug/
目录。当您运行项目时(通过单击它或在Visual Studio中调试它),工作目录是
bin/debug/
,因此
hibernate.cfg.xml
文件应该在那里

你可以:

  • 在Visual Studio中使用生成后事件将
    hibernate.cfg.xml
    文件复制到输出目录
  • 调用
    Configure(path)
    ,其中
    path
    是指向
    /consoleTests/
    目录中
    hibernate.cfg.xml
    的路径

有关如何配置NHibernate的更多详细信息,请参阅“”。

您可以将xml属性“复制到输出目录”设置为“始终复制”

您的意思是什么?我只是在vs.net中运行控制台应用程序…@homestad:Adrianbanks给出了完整的答案。将hibernate.cfg.xml的属性更改为“始终复制”或“更新时复制”,它将被复制到输出路径。