我有一个NAnt任务创建 MSBuild 文件的副本。副本位于其原始目录之外的其他目录中。
源文件应保留在原处。因此,我使用 NAnt 的<style>
任务在 MSBuild 文件上运行 XSLT。它<Compile/>
用子树替换元素<Compile><Link/></Compile>
(为了便于阅读,省略了属性)。
我遇到了以下问题:在生成的 MSBuild 文件Include
中,元素的属性Compile
应该从 MSBuild 文件的新位置接收到源文件的相对路径。由于原始 MSBuild 文件包含文件的相对路径,因此我真正要查找的是从新 MSBuild 文件位置到原始 MSBuild 文件位置的相对路径。
我知道如何使用但我想避免的解决方法:
- 自定义 NAnt 任务
- 使用子字符串删除目录路径的相互前缀(NAnt 基本目录)
有没有更好的方法;可能是一个 NAnt 函数或一个巧妙的方法来结合使用几个 NAnt 函数来实现这一点?