我们遇到的问题是在 msbuild 中发现的。我们在抛出 FileNotFoundException 的任务中有一个可执行文件。这个LoadData.exe使用NHibernate来初始化数据,所以在项目的根目录下有一个NHibernate.config文件。
配置上的属性设置为内容/始终复制。我可以确认,在构建时,此配置文件已复制到输出目录。
在控制台窗口中,您可以从 bin/debug 目录中启动此可执行文件,它将正常运行而不会出现错误。在此目录之外,您会在配置文件中获得 FileNotFoundException。
该错误表明 NHibernate.config 正在加载相对于我们在 BUILD 目录中执行 MSBUILD 的位置,而不是 LoadData.exe 目录。这是为什么?我们不能让它绝对对exe吗?
是否有针对此的 BuildAction 设置?