MSBUILD Batching Tasks выполняет каждый оператор в пакете - PullRequest
0 голосов
/ 15 июля 2009

В моем скрипте 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-файла "C: \ StagingArea \ v5_6_0 \ States \ Alaska \ v5_6_0AK.zip".

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

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

1 Ответ

0 голосов
/ 15 июля 2009

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

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