我有两个项目组
<ItemGroup>
<Device Include="device1">
<Cdname>code1</Cdname>
</Device>
<Device Include="device2">
<Cdname>code2</Cdname>
</Device>
<Device Include="device3">
<Cdname>code3</Cdname>
</Device>
<Device Include="device4">
<Cdname>code4</Cdname>
</Device>
<Device Include="device4">
<Cdname>code4</Cdname>
</Device>
<Device Include="device5">
<Cdname>code5</Cdname>
</Device>
<Device Include="device6">
<Cdname>code6</Cdname>
</Device>
<Device Include="device7">
<Cdname>code7</Cdname>
</Device>
<Device Include="device8">
<Cdname>code8</Cdname>
</Device>
<Device Include="device9">
<Cdname>code9</Cdname>
</Device>
<Device Include="device10">
<Cdname>code10</Cdname>
<Device Include="device1000">
<Cdname>code1000</Cdname>
</Device>
</ItemGroup>
和
<ItemGroup>
<Gpdname Include="d:\gpd\gpd1.GPD">
<GPDFile>gpd1.GPD</GPDFile>
</Gpdname>
<Gpdname Include="d:\gpd\gpd2.GPD">
<GPDFile>gpd2.GPD</GPDFile>
</Gpdname>
</ItemGroup>
我的目标如下
<Target Name="CopyGPD" Inputs="@(Gpdname)" Outputs="d:\%(Device.Cdname)\drvs\gpd\%(GPDFile)">
完成复制过程后,gpd1.GPD和gpd2.GPD将从d:\ gpd复制到 d:\ drvs \ gpd \ gpd1.GPD和d:\ drvs \ gpd \ gpd2.GPD
但我想把它复制到
d:\ code1 \ drvs \ gpd \ gpd1.GPD
d:\ CODE1 \ DRVS \ GPD \ gpd2.GPD
d:\码2 \ DRVS \ GPD \ gpd1.GPD
d:\码2 \ DRVS \ GPD \ gpd2.GPD
d:\ CODE3 \ DRVS \ GPD \ gpd1.GPD
d:\ CODE3 \ DRVS \ GPD \ gpd2.GPD
d:\码4 \ DRVS \ GPD \ gpd1.GPD
d:\码4 \ DRVS \ GPD \ gpd2.GPD
d:\代码4 \ DRVS \ GPD \ gpd1.GPD
d:\代码4 \ DRVS \ GPD \ gpd2.GPD
高达------------------
d:\ code1000 \ DRVS \ GPD \ gpd1.GPD
d:\ code1000 \ DRVS \ GPD \ gpd2.GPD
请帮忙
答案 0 :(得分:0)
如果你没有坚持确切的顺序(gdp1.GDP
然后gdp2.GDP
为每个Cdname
),这将有助于(Phil Cupp: MSBuild Tricks I Don’t Want to Forget提供):
<Target Name="Cartesian_Device_GDP">
<ItemGroup>
<C Include="@(Device)">
<A>%(Device.Cdname)</A>
</C>
</ItemGroup>
<ItemGroup>
<D Include="@(C)">
<B>%(Gpdname.GPDFile)</B>
</D>
</ItemGroup>
<CreateItem Include="@(D)">
<Output TaskParameter="Include" ItemName="CombinedDeviceGDP" />
</CreateItem>
</Target>
<Target Name="Msg" DependsOnTargets="Cartesian_Device_GDP">
<Message Text="D:\%(CombinedDeviceGDP.A)\drvs\gpd\%(CombinedDeviceGDP.B)" />
</Target>