我的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个拉链,它们都包含相同的文件。
任何人都知道如何以不同的方式做到这一点?
答案 0 :(得分: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>