次のコードで、MsBuildがサフィックスメタデータの設定を拒否するのはなぜだろうか。ItemGroup宣言の代わりにCreateItemタスクで動作します(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>
宛先は適切に構築されていますが、サフィックスメタデータが設定されていません。
今のところ、必要なすべてのプロジェクトで宛先定義を複製しましたが、あまりきれいではありません。誰かがより良い解決策を持っているなら、私は興味があります!