如何检测文件集是否已定义?

时间:2011-12-19 10:30:12

标签: nant fileset nantcontrib

我的自定义NAnt任务依赖于某个文件集。它被认为是由任务执行的时间定义的。我想确保在使用之前定义了文件集。我在考虑与property::exists('property')类似的东西。

我找不到合适的功能。 是否可以开箱即用NAnt(或NAntContrib)?

1 个答案:

答案 0 :(得分:1)

通常,任务不应依赖于文件集或属性。相反,他们应该采取明确的参数。可以使用refid重用现有文件集,因此不会因此而重新声明。语法示例:

<myTask><filesetParameter refid="compileUs"/><myTask>

如果未定义引用的文件集,NAnt将抛出异常 - 这是正确的(预期的)行为,因为此时构建无法继续。

在您的任务中,该属性将定义如下:

[TaskName("myTask")]
public class MyTask : Task
{
  [TaskAttribute("filesetParameter", Required = true)]
  public FileSet FilesetParamter
  { get; set; }
}