2012-03-23 3 views
9

빌드 프로세스 중에 프로젝트의 모든 javascript 파일을 결합하려고하는데, 저에게 맞지 않습니다. 여기에 내가 가진 무엇 : MSBuild에서의 "파일"매개 변수에 대한 잘못된 값이있다 말하는 ReadLinesFromFile 줄에 오류를 던지고있다MSBuild는 파일을 결합합니다.

<Target Name="CombineJS"> 
    <CreateItem Include=".\**\*.js"> 
    <Output TaskParameter="Include" ItemName="jsFilesToCombine" /> 
    </CreateItem> 

    <ReadLinesFromFile File="@(jsFilesToCombine)"> 
    <Output TaskParameter="Lines" ItemName="jsLines" /> 
    </ReadLinesFromFile> 

    <WriteLinesToFile File="all.js" Lines="@(jsLines)" Overwrite="true" /> 
</Target> 

. (결합하는 하나 개의 파일 만 거기에 오류 없음)

그래서, 두 가지 질문 : 내가 잘못 뭐하는 거지

  1. ?
  2. MSBuild 작업 내에서 파일을 결합하는 더 좋은 방법이 있습니까? 현재의 프로세스가 모든 탭과 빈 줄을 제거한다는 것을 알기 때문에이 질문을 던집니다. 제게는 그다지 큰 거래는 아니지만 성가신 상황입니다.

답변

13

변경 라인 6 :

<ReadLinesFromFile File="%(jsFilesToCombine.FullPath)"> 

입력 본질적 문자열 세미콜론으로 분리 된 목록이다 ItemGroup@ 연산자가 사용된다.

% 연산자는 항목 그룹을 문자열 (속성)으로 확장하는 데 사용됩니다.

2

ReadLinesFromFileTask 당신이 파일을 읽을 사용은 File 특성 (MSDN)에 대한 입력으로 하나의 파일을합니다. 이 작업을 사용하여 한 번에 여러 파일의 행을 읽을 수 없습니다. 그러나 batching을 사용하여 각 파일에 대해 여러 번 작업을 실행할 수 있습니다. 행

+0

+1 일괄 처리 및 파일에 추가가 답입니다. –

관련 문제