我想知道为什么在下面的代码中,MsBuild 拒绝设置后缀元数据。它确实适用于 CreateItem 任务而不是 ItemGroup 声明(因为 CreateItem 是在构建时计算的)但我不能在这里执行此操作,因为此代码位于“属性文件”中:该项目没有目标,它只是一堆我在实际项目中包含的属性/项目。
<ItemGroup>
<Layout Include="Bla">
<PartnerCode>bla</PartnerCode>
</Layout>
<Layout Include="Bli">
<PartnerCode>bli</PartnerCode>
</Layout>
</ItemGroup>
<ItemGroup Condition="'$(LayoutENV)'=='Preprod'">
<LayoutFolder Include="Preprod">
<Destination>..\Compil\layout\pre\</Destination>
</LayoutFolder>
</ItemGroup>
<ItemGroup>
<Destinations Include="@(LayoutFolder)" >
<Suffix>%(Layout.PartnerCode)</Suffix>
</Destinations>
</ItemGroup>
目的地构建良好,但未设置后缀元数据。
至于现在,我已经在我需要的每个项目中复制了目的地定义,但它不是很干净。如果有人有更好的解决方案,我很感兴趣!