【问题标题】:'Could not find file hibernate.cfg.xml' when running after publish my application发布我的应用程序后运行时“找不到文件 hibernate.cfg.xml”
【发布时间】:2017-02-12 23:52:36
【问题描述】:

我有 2 个问题。

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

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

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

【问题讨论】:

    标签: c# wpf nhibernate deployment


    【解决方案1】:

    一种选择是将您的 nHibernate 配置移动到 app.config 中

    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
      <session-factory>
        ...
      </session-factory>
    </hibernate-configuration>
    

    在您的 configsections 部分添加

    <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"));
    

    【讨论】:

      【解决方案2】:

      还有一个地方可以检查。

      打开您的项目属性,转到“发布”,然后单击“应用程序属性”。在此界面中,您必须检查文件 Hibernate.cfg.xml 是否在 Publish Status 中为“Include”。

      【讨论】:

        【解决方案3】:

        Publishing后,你看到输出目录下的hibernate.cfg.xml了吗?

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

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

        【讨论】:

        • 在发布后获得的文件夹中,我只看到了“hibernate.cfg.xml.deploy”。是同一个文件吗? (我也希望看到 hibernate.cfg.xml 将放在 .exe 文件的同一个文件夹中,但它不是我希望的。)在 Visual 中,hibernate.cfg.xml 文件的属性也设置为“内容”和“总是复制”。您还有其他想法可以解决我的问题吗?
        • 如果您将文件设置为“内容”并输出为“始终复制”,则该文件应始终位于构建文件夹中。尝试通过转到 BUILD-Clean Solution 来清理您的解决方案,然后重新构建它。还要检查您的解决方案配置,我不确定调试/发布如何与已发布的 WPF 一起工作,但您的文件可能会被复制到您未正确检查的文件夹中。
        • 我相信“总是复制”意味着将文件复制到 bin 目录,而“内容”意味着发布操作应该将文件复制到相同的项目相对位置(即这是什么用于例如 .aspx 和 MVC 视图)。
        猜你喜欢
        • 2015-06-15
        • 2015-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多