2011-03-23 3 views

답변

1

"추가 종속성"은 정확하고 문서화 된 방식입니다. 외부 도구를 사용하여 프로젝트 파일의 빌드 도구에 대해이 필드의 내용을 조정하여 & 붙여 넣기 & 오타 조정 복사 문제를 방지 할 수 있습니다.

0

안정적이지는 않지만 모든 파일을 하위 폴더에 넣고 폴더를 종속성으로 만들 수 있습니다.

+0

) 실제로 작동합니까? – Boinst

+0

Nope. 그렇지 않습니다. – Boinst

7

빌드 도구를 하나의 파일에만 의존하게 만들었습니다. 실제 종속성 중 하나가 변경되면이 파일을 실행하는 다른 사용자 정의 빌드 도구가 생성됩니다. 장점은 이제 내가 상당한 유연성을 가지며 종속성이 바뀌면 프로젝트 설정을 변경할 필요가 없다는 것입니다. 새로운 맞춤 빌드 도구가 액세스하는 데이터베이스를 통해 처리됩니다.

+0

훌륭한 해결책 인 것처럼 들립니다. –

0

조금 해킹이 :

(1) 군 별도의 폴더에 종속 파일이

(2) 다음과 같은 JScript를 파일 detect.js을 만듭니다

var output = WScript.arguments(0); 
var folder = WScript.arguments(1); 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var objOutput = fso.GetFile(output); 
var objFolder = fso.GetFolder(folder); 
// if the output file is older than input folder, 
// delete output file to force regenerate 
if (objOutput.DateLastModified < objFolder.DateLastModified) { 
    fso.DeleteFile(objOutput); 
} else { 
    // if the output file is older than one of files in the input folder, 
    // delete output file to force regenerate 
    var e = new Enumerator(objFolder.Files); 
    for (; !e.atEnd(); e.moveNext()) { 
     if (objOutput.DateLastModified < e.item().DateLastModified) 
      fso.DeleteFile(objOutput); 
      break; 
     } 
    } 
} 

(2) 추가 사전 빌드 이벤트에 대한 명령 줄은 다음과 같습니다.

cscript.exe /nologo detect.js $(Output) $(InputFolder) 

(3) e 사전 벌칙 이벤트가 강제 실행되도록하려면 (예 :

Command Line: echo -------------- 
Outputs: echo.fake 
Execute After: PreBuildEvent