“找不到文件休眠.cfg.xml”在发布我的应用程序后运行时

本文关键字:我的 应用程序 运行时 布我的 休眠 文件 找不到 cfg xml | 更新日期: 2023-09-27 18:36:27

我有 2 个问题。

我的应用程序是WPF c#应用程序,我们将MS Access作为数据库(.dbm文件)和NHibernate进行连接。

第一个问题是在发布我的应用程序,获取exe文件并安装我的应用程序后,我尝试运行该应用程序,我遇到了异常,它找不到文件休眠.cfg.xml。但是,如果我通过Visual Studio运行,该应用程序运行良好。该配置文件位于调用配置的类的同一文件夹中。

此外,我不确定我的发布方法是否正确。若要发布我的 WPF 应用,请在解决方案资源管理器中右键单击主项目>发布>然后执行几个步骤并单击"完成"结束。我还没有看到任何配置文件出现在我希望看到的发布 floder 中,因为我希望允许用户以后能够配置他的数据库(.dbm 文件)的路径。那么这是第二个问题。

“找不到文件休眠.cfg.xml”在发布我的应用程序后运行时

一种选择是将 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"));
还有

另一个地方需要检查。

打开您的项目属性,转到"发布",然后单击"应用程序项目"。在此界面中,您必须检查文件休眠.cfg.xml是否处于"发布状态

"。
发布

后,您是否在输出目录中看到休眠.cfg.xml?

如果在 Visual Studio 中添加了此文件,则默认情况下可能不会复制它。

确保在文件的属性中,其类型设置为"内容",输出为"复制"。