2009-07-14 20 views
0

I私の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:FOR ZIPの作成アラスカ FOR の作成ZIPをフロリダ ルイジアナ向け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>