【发布时间】:2011-10-26 22:46:36
【问题描述】:
有没有办法在不求助于 Targets 的情况下删除 ItemGroup 的内容?我正在寻找相当于:
<ItemGroup>
<MyItemGroup Remove="@(MyItemGroup)"/>
</ItemGroup>
谢谢
【问题讨论】:
有没有办法在不求助于 Targets 的情况下删除 ItemGroup 的内容?我正在寻找相当于:
<ItemGroup>
<MyItemGroup Remove="@(MyItemGroup)"/>
</ItemGroup>
谢谢
【问题讨论】:
不,正如文档所述,Remove 只能包含在 Target 内的 ItemGroup 中。我不确定为什么在您的情况下使用目标是一个问题,但如果想对每个构建配置使用“删除”步骤,请将其添加到 BeforeXXXX AfterXXX 挂钩之一,例如 BeforeBuild。
ItemGroup 'Remove' Documentation
从 .NET Framework 3.5 开始,Target 元素可能包含 ItemGroup 元素,而 ItemGroup 元素可能又包含 item 元素。这些项目元素可以包含 Remove 属性,该属性从项目类型中删除特定项目(文件)。例如,以下 XML 会从 Compile 项类型中删除每个 .config 文件。
<Target>
<ItemGroup>
<Compile Remove="*.config"/>
</ItemGroup>
</Target>
【讨论】:
XmlPeek 任务 (msdn.microsoft.com/en-us/library/ff598684.aspx) 的 Result 输出参数。此外,即使使用确实代表文件的项目,有时也适合使用Remove 而不查询文件系统;例如,请参阅Microsoft.Common.CurrentVersion.targets 中的这些行:github.com/Microsoft/msbuild/blob/…
【讨论】: