从文件夹生成项目列表以进行批量生成

时间:2015-03-11 01:46:19

标签: msbuild batch-processing

我想为不同的客户批量构建项目,每个客户在项目中都有自己的子文件夹。

root
  customers
    customer1
    customer2

有没有办法在msbuild中生成一个列表来批量构建一个/p:customer=name of customer folder的项目? 因此,在项目文件中,我可以包含来自%(customer)的某些文件。

1 个答案:

答案 0 :(得分:0)

首先列出目录(1),然后获取它的最后一部分(2),然后循环它(3):

<Target Name="Batch">
  <ItemGroup>
    <!-- (1) don't forget to replace rootdir with your dir -->
    <CustomerDirs Include="$([System.IO.Directory]::GetDirectories(rootdir, *, SearchOption.AllDirectories))" />

    <!-- (2) -->
    <Customers Include="@(CustomerDirs->'%(FileName)')"/>
  </ItemGroup>

  <!-- (3) -->
  <Message Text="customer=%(Customers.Identity)"/>
</Target>