Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从外部路径执行时资源上的FileNotFoundException_C#_Msbuild_Filenotfoundexception - Fatal编程技术网

C# 从外部路径执行时资源上的FileNotFoundException

C# 从外部路径执行时资源上的FileNotFoundException,c#,msbuild,filenotfoundexception,C#,Msbuild,Filenotfoundexception,在msbuild中注意到了我们遇到的问题。我们在任务中有一个可执行文件,该任务正在引发FileNotFoundException。此LoadData.exe使用NHibernate初始化数据,因此在项目的根目录中有一个NHibernate.config文件 配置上的属性设置为Content/Copy Always。我可以确认,在构建时,此配置文件已复制到输出目录 在控制台窗口中,您可以从bin/debug目录中启动此可执行文件,它将正常工作。在此目录之外,您可以在配置文件上获得FileNotFo

在msbuild中注意到了我们遇到的问题。我们在任务中有一个可执行文件,该任务正在引发FileNotFoundException。此LoadData.exe使用NHibernate初始化数据,因此在项目的根目录中有一个NHibernate.config文件

配置上的属性设置为Content/Copy Always。我可以确认,在构建时,此配置文件已复制到输出目录

在控制台窗口中,您可以从bin/debug目录中启动此可执行文件,它将正常工作。在此目录之外,您可以在配置文件上获得FileNotFoundException

该错误表示正在相对于生成目录中执行MSBUILD的位置而不是LoadData.exe目录加载NHibernate.config。为什么呢?我们不能让它绝对化吗


是否有此BuildAction设置?

更改代码以从程序集的位置加载文件。

是的,就是这样。我们刚刚在MSBUILD目标的Exec中添加了一个cd。诀窍是在cd路径之后和可执行调用之前添加一个编码的放大器:再次感谢。。。