21

有没有办法在不诉诸目标的情况下删除 ItemGroup 的内容?我正在寻找相当于:

<ItemGroup>
  <MyItemGroup Remove="@(MyItemGroup)"/>
</ItemGroup>

谢谢

4

2 回答 2

18

不,正如文档所述,Remove 只能包含在 Target 内的 ItemGroup 中。我不确定为什么在您的情况下使用目标是一个问题,但是如果要对每个构建配置使用“删除”步骤,请将其添加到 BeforeXXXX AfterXXX 挂钩之一,例如 BeforeBuild。

ItemGroup“删除”文档

从 .NET Framework 3.5 开始,Target 元素可能包含 ItemGroup 元素,而 ItemGroup 元素可能又包含 item 元素。这些项目元素可以包含 Remove 属性,该属性从项目类型中删除特定项目(文件)。例如,以下 XML 会从 Compile 项类型中删除每个 .config 文件。

<Target>
  <ItemGroup>
    <Compile Remove="*.config"/>
  </ItemGroup>
</Target>
于 2011-10-27T12:45:23.237 回答
15

现在有。

MSBuild 15 中的新增功能

  • Item目标之外的元素有一个新Update属性。此外,还取消了对属性的限制。Remove
于 2017-06-16T18:20:26.147 回答