2009-07-14 3 views
0

나는 내 MSBuild를 스크립트에서 다음과 같은 작업이 있습니다MSBUILD 일괄 작업은 배치의 각 문을 실행

<Target Name="ZipStates"> 
    <Message Text="CREATING ZIP FOR %(StateSet.Name)" /> 

    <CreateItem Include="$(StagingArea)\v$(VersionString)\States\%(StateSet.Name)\v$(VersionString)%20%(StateSet.Abbreviation)XTend\**\*.*" > 
     <Output ItemName="ZipFiles" TaskParameter="Include"/> 
    </CreateItem> 

    <MSBuild.Community.Tasks.Zip Files="@(ZipFiles)" 
      ZipFileName="$(StagingArea)\v$(VersionString)\States\%(StateSet.Name)\v$(VersionString)%(StateSet.Abbreviation).zip" /> 

    </Target> 

<ItemGroup> 
    <StateSet Include="AK"> 
     <Name>Alaska</Name> 
     <Abbreviation>AK</Abbreviation> 
    </StateSet> 
    <StateSet Include="FL"> 
     <Name>Florida</Name> 
     <Abbreviation>FL</Abbreviation> 
    </StateSet> 
    <StateSet Include="LA"> 
     <Name>Louisiana</Name> 
     <Abbreviation>LA</Abbreviation> 
    </StateSet> 
</ItemGroup> 

출력은 다음과 같습니다

ZipStates :위한 우편 번호를 생성하기 알래스카 에 대한 생성하기 우편 번호를 플로리다 루이지애나의 ZIP 만들기 zip 파일 "C : \ StagingArea \ v5_6_0 \ States \ Alaska \ v5_6_0AK.zip"만들기.

이 방법으로 배치를 수행하면 작업의 각 명령이 항목 그룹 배치의 모든 노드에 대해 실행 된 다음 다음 단계로 이동하는 것으로 보입니다. 필자가 끝내는 것은 모두 동일한 파일을 포함하는 3 개의 zip입니다.

누구나 내가 어떻게 다르게 할 수 있을지 알고 있습니까?

+0

정확히 3 가지 지퍼 대신 무엇을하고 싶습니까? –

+0

기본적으로 해당 파일 만 포함 된 상태 별 우편 번호입니다. – NotMyself

답변

0

알아 냈어. 목록마다 고유 한 파일 목록을 만드는 방식을 수정해야했습니다. 좋아요 :

<Target Name="ZipStates"> 

    <CreateItem Include="$(StagingArea)\v$(VersionString)\States\%(StateSet.Name)\v$(VersionString)%20%(StateSet.Abbreviation)XTend\**\*.*" 
       Exclude="web.config"> 
     <Output ItemName="XtendZipFiles%(StateSet.Abbreviation)" TaskParameter="Include"/> 
    </CreateItem> 

    <MSBuild.Community.Tasks.Zip Files="@(XtendZipFiles%(StateSet.Abbreviation))" 
      ZipFileName="$(StagingArea)\v$(VersionString)\States\%(StateSet.Name)\v$(VersionString)%(StateSet.Abbreviation)XTend.zip" /> 

    </Target>