У меня есть следующая задача в моем сценарии 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-архива для Флориды СОЗДАНИЕ ZIP-архива для Луизианы Создание zip-файла "C:\StagingArea\v5_6_0\States\Alaska\v5_6_0AK.zip".
Кажется, что когда я делаю пакет таким образом, каждая команда в задаче выполняется для каждого узла в пакете группы элементов, а затем переходит к следующему шагу. В итоге я получаю 3 почтовых индекса, которые содержат одни и те же файлы.
У кого-нибудь есть идея, как я могу сделать это по-другому?