Пакетные задачи 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-архива для Флориды СОЗДАНИЕ ZIP-архива для Луизианы Создание zip-файла "C:\StagingArea\v5_6_0\States\Alaska\v5_6_0AK.zip".

Кажется, что когда я делаю пакет таким образом, каждая команда в задаче выполняется для каждого узла в пакете группы элементов, а затем переходит к следующему шагу. В итоге я получаю 3 почтовых индекса, которые содержат одни и те же файлы.

У кого-нибудь есть идея, как я могу сделать это по-другому?


person NotMyself    schedule 14.07.2009    source источник
comment
Что именно вы хотите получить вместо трех разных почтовых индексов?   -  person Craig Martek    schedule 15.07.2009
comment
В основном почтовый индекс для каждого штата, который содержит только их файлы.   -  person NotMyself    schedule 15.07.2009


Ответы (1)


Догадаться. Мне нужно было изменить способ создания списка файлов, чтобы он был уникальным для каждого списка. Вот так:

<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>
person NotMyself    schedule 14.07.2009