2011-12-19 2 views
1

내 맞춤 NAnt 작업은 특정 파일 세트를 사용합니다. 태스크가 실행될 때까지 정의 된 것으로 간주됩니다. 파일 세트를 사용하기 전에 파일 세트가 정의되었는지 확인하고 싶습니다. property::exists('property')과 비슷한 것을 생각하고 있습니다.파일 세트가 정의되었는지 여부를 감지하는 방법은 무엇입니까?

적절한 기능을 찾지 못했습니다. NAnt (또는 NAntContrib)을 즉시 사용할 수 있습니까?

+0

이 작업은 파일 세트/속성에 "따라"하지만, 명시 적으로 매개 변수를 사용해서는 안된다. 이 파일 세트는 간단한 refid 참조를 통해 포함될 수 있기 때문에 재 선언이 필요하지 않습니다. – skolima

+0

잘 모르겠습니다. refid를 사용하여 파일 세트를 참조하지만, 파일 세트가 어딘가에 정의되어 있지 않으면 "정의되지 않은"오류가 발생합니다. –

+0

BTW, 매개 변수로 파일 세트를 전달하는 데 문제가 있습니다. NAnt가 작업의 파일 세트로 다시 확장 할 수 없어서 문자열 리터럴로 처리 할 수 ​​없습니다. 뭔가 알려진거야? 아니면 나는 초보자가 빠지는 구멍에 빠지기 만합니까? :) –

답변

1

일반적으로 작업은 파일 세트 나 속성에 의존해서는 안됩니다. 대신 명시적인 매개 변수를 사용해야합니다. 기존 파일 세트는 refid을 사용하여 재사용 할 수 있으므로이 결과로 재 선언 할 필요가 없습니다. 예 구문 : 참조 된 파일 세트가 정의되지 않은 경우

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

가,은 NAnt이 예외가 발생합니다 -이 적당하다 (예상) 행동 빌드이 시점에서 계속할 수있다. 다음과 같이 작업 내부

이 있으며,이 건물은 정의된다 :

일반적으로
[TaskName("myTask")] 
public class MyTask : Task 
{ 
    [TaskAttribute("filesetParameter", Required = true)] 
    public FileSet FilesetParamter 
    { get; set; } 
} 
+0

다시 한번 감사드립니다! 도움이됩니다. –