我有一个常见的NAnt脚本(包含一些常见的目标和常量),我包含在许多其他NAnt脚本中,如下所示:
<include buildfile="<path>\common.build" verbose="true" />
调用脚本位于各种文件夹中。
在这个包含的脚本中,我需要从同一目录中读取一个文件,其中包含脚本所在的目录。 “当前目录”设置为调用脚本的目录,不包括在内。 如何获取所包含脚本的目录路径?
如果我使用以下构造(包含内部脚本):
${ path::get-directory-name(project::get-buildfile-path()) }
然后我得到调用脚本的文件夹路径,而不是包含的脚本。
有没有办法让包含脚本的路径在其中?
此致 伊凡。
答案 0 :(得分:3)
我看过NAnt源代码,遗憾的是你想要实现的是现有的或自定义的功能 - NAnt将包含的文件附加到它的项目结构中,而Project
有一个{{1找回某个节点来自的文件名,它被标记为LocationMap
,因此甚至无法用脚本提取。您可以寻求一种解决方法,例如假设文件与主脚本相关的常量位置(并从那里向下走)或使用显示所需功能的函数构建自定义版本的NAnt。第一个解决方案并不漂亮,第二个解决方案并不容易。