2009-07-14 6 views
0

je la tâche suivante dans mon script MSBuild:MSBUILD Batching Tâches Exécute Chaque énoncé dans un lot

<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> 

La sortie ressemble à ceci:

ZipStates: CREER Code postal pour l'Alaska CREER ZIP POUR Florida CRÉATION D'UN ZIP POUR LA LOUPIANA Création d'un fichier zip "C: \ StagingArea \ v5_6_0 \ States \ Alaska \ v5_6_0AK.zip".

Il semble que lorsque je fais un lot de cette manière, chaque commande de la tâche est exécutée pour chaque nœud du lot du groupe d'articles, puis elle passe à l'étape suivante. Ce que je me retrouve avec 3 zips qui contiennent tous les mêmes fichiers.

Quelqu'un at-il une idée de comment je peux le faire différemment?

+0

Que voulez-vous exactement finir avec les 3 fermetures à glissière différentes? –

+0

Fondamentalement un zip par état qui contient seulement leurs fichiers. – NotMyself

Répondre

0

Compris. J'avais besoin de modifier la façon dont je créais la liste de fichiers pour être unique par liste. Comme ça:

<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> 
Questions connexes