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>

但是,这不起作用(没有复制任何内容)。如何在复制命令中引用标签属性?

4

1 回答 1

3

您不能根据标签属性过滤项目,但可以根据项目的元数据进行过滤。例如:

<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 回答