【发布时间】:2010-06-16 22:56:45
【问题描述】:
这里有一个烦人的问题。我有一个通过 SVN 工作的 NHibernate/Forms 应用程序。我制作了一些我自己的控件,但是当我将这些(或查看我已经拖放的一些表单编辑器)拖放到我的其他一些控件上时,Visual Studio 决定它需要执行我编写的一些代码,包括查找 hibernate.cfg.xml 的部分。
我不知道为什么会这样,但是(有时!)当它在我的表单加载或拖放期间执行代码时,它会将当前目录切换到 C:\program files\vs 9.0\common7\ide,然后nhibernate 抛出一个找不到 hibernate.cfg.xml 的异常,因为我是在相对路径中搜索的。
现在,我不想硬编码 hibernate.cfg.xml 的位置,或者只是将 hibernate.cfg.xml 复制到 ide 目录(这将起作用)。我想要一个在当前目录为 common7\ide 时获取解决方案目录的解决方案。可以让某人在设计器中查看我的表单,以便在任意机器上的任意目录中重新结帐。不,我不打算在代码中加载控件。我在控件中有这么多控件,如果没有它,将所有东西都排列起来简直是一场噩梦。
我尝试了一个预构建事件,该事件生成了一个包含解决方案目录的文件,但是我当然如何从 common7\ide 中找到它?由于svn,所有项目文件都需要在解决方案目录中。
感谢你们的帮助,我已经花了几个小时徒劳地摆弄这个。
更新:我将 hibernate.cfg 设置为嵌入式资源。对于每个配置,我只是简单地创建一个新的构建配置、调试、发布、XYZ。在大多数情况下,我建议您嵌入运行程序所依赖的任何文件。它使构建安装程序变得更加简单。
【问题讨论】:
-
你在VS的时候能把hbm的配置放到App.config里吗?
-
我不知道,如果我将 xml 文件放入 xml 文件中,xml 解析器是否能够找到所有标签?
标签: c# visual-studio winforms nhibernate