我有2个问题。
我的应用程序是WPF c#app,我们将MS Access作为数据库(.dbm文件)和NHibernate进行连接。
第一个问题是在发布我的应用程序,获取exe文件并安装我的应用程序之后,我试图运行应用程序,我得到一个例外,它无法找到文件hibernate.cfg.xml。但是,如果我运行Visual Studio,该应用程序工作正常。该配置文件位于调用配置的类的同一文件夹中。
另外,我不确定我的发布方法是否正确。要发布我的WPF应用程序,请在解决方案资源管理器中右键单击主项目>发布>然后按照几个步骤结束,点击“完成”。我没有看到任何配置文件出现在我希望看到的发布文件夹中,因为我想让用户以后能够配置他的数据库(.dbm文件)的路径。那么这是第二个问题。
答案 0 :(得分:1)
一种选择是将您的nHibernate配置移动到app.config
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
...
</session-factory>
</hibernate-configuration>
在您的配置部分添加
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" requirePermission="false" />
...
<configSections>
<configuration>
或者
var cfg = new Configuration();
cfg.Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"hibernate.cfg.xml"));
答案 1 :(得分:1)
还有另一个要检查的地方。
打开您的项目属性,转到&#39;发布&#39;然后点击“应用程序正常”#39;。在此界面中,您必须检查文件Hibernate.cfg.xml是否包含&#39; Include&#39;在发布状态。
答案 2 :(得分:0)
发布后,你在输出目录中看到了hibernate.cfg.xml吗?
如果您在Visual Studio中添加了此文件,则默认情况下可能无法复制该文件。
确保在文件的属性中,其类型设置为“内容”,输出为“复制”。