1

私の cpp プロジェクト ファイルには、次のように定義された項目グループがあります。

<ItemGroup>
<None Include="file1.dll" Label="Release Version"/>
<None Include="file2.dll" Label="Debug Version"/>
</ItemGroup>

アイテムのラベル属性に基づいて、上記のファイルを別の場所にコピーしたい AfterBuild ターゲットがあります。例えば:

<Target Name="AfterBuild">
<Copy SourceFiles="@(None)" DestinationFiles="$(ReleaseLocation)" Condition="'%(None.Label)'=='Release Version'" ContinueOnError="false" />
</Target>

ただし、これは機能しません (何もコピーされません)。Copy コマンドで Label 属性を参照するにはどうすればよいですか?

4

1 に答える 1

3

Label属性に基づいてアイテムをフィルタリングすることはできませんが、アイテムのメタデータに基づいてフィルタリングすることはできます。例えば:

<ItemGroup>
  <None Include="file1.dll">
   <Label>Release Version</Label>
  </None>
  <None Include="file2.dll">
    <Label>Debug Version</Label>
  </None>
</ItemGroup>

<Target Name="AfterBuild">
  <ItemGroup>
    <_RetailContent Include="@(None)" Condition="%(Label) == 'Release Version'" />
  </ItemGroup>
  <Copy SourceFiles="@(_RetailContent)" DestinationFolder="$(ReleaseLocation)" ContinueOnError="false" />
</Target>
于 2012-08-03T03:37:27.940 に答える