NAnt - 如何获取包含脚本的目录路径

时间:2012-09-13 14:00:31

标签: path include directory nant

我有一个常见的NAnt脚本(包含一些常见的目标和常量),我包含在许多其他NAnt脚本中,如下所示:

<include buildfile="<path>\common.build" verbose="true" />

调用脚本位于各种文件夹中。

在这个包含的脚本中,我需要从同一目录中读取一个文件,其中包含脚本所在的目录。 “当前目录”设置为调用脚本的目录,不包括在内。 如何获取所包含脚本的目录路径?

如果我使用以下构造(包含内部脚本):

${ path::get-directory-name(project::get-buildfile-path()) }

然后我得到调用脚本的文件夹路径,而不是包含的脚本。

有没有办法让包含脚本的路径在其中?

此致 伊凡。

1 个答案:

答案 0 :(得分:3)

我看过NAnt源代码,遗憾的是你想要实现的是现有的或自定义的功能 - NAnt将包含的文件附加到它的项目结构中,而Project有一个{{1找回某个节点来自的文件名,它被标记为LocationMap,因此甚至无法用脚本提取。您可以寻求一种解决方法,例如假设文件与主脚本相关的常量位置(并从那里向下走)或使用显示所需功能的函数构建自定义版本的NAnt。第一个解决方案并不漂亮,第二个解决方案并不容易。