我想为不同的客户批量构建项目,每个客户在项目中都有自己的子文件夹。
root
customers
customer1
customer2
有没有办法在msbuild中生成一个列表来批量构建一个/p:customer=name of customer folder
的项目?
因此,在项目文件中,我可以包含来自%(customer)
的某些文件。
答案 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>