2011-10-26 1 views
14

Есть ли способ удалить содержимое ItemGroup, не прибегая к Целям? Я ищу что-то что эквивалентно:Пустой MSBuild ItemGroup

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

Благодарности

ответ

2

Теперь есть.

What's New in MSBuild 15

  • Item Element вне цели имеет новый атрибут Update. Кроме того, ограничение на атрибут Remove устранено.
+0

Фантастический. Upvoted! –

15

Нет, документации состояний, удаление может быть включен только в ItemGroup внутри мишени. Я не уверен, почему использование целевого объекта является проблемой в вашем случае, но если вы хотите использовать шаг «Удалить» для каждой конфигурации сборки, добавьте его в один из перехватов BeforeXXXX AfterXXX, например BeforeBuild.

ItemGroup 'Remove' Documentation

Начиная с .NET Framework 3.5, Целевые элементы могут содержать ItemGroup элементов, которые могут содержать элементы записи. Эти элементы элементов могут содержать атрибут «Удалить», который удаляет определенные элементы (файлы) из типа элемента. Например, следующий XML удаляет каждый .config-файл из типа элемента компиляции.

<Target> 
    <ItemGroup> 
    <Compile Remove="*.config"/> 
    </ItemGroup> 
</Target> 
+0

Вы правы. Это невозможно сделать за пределами цели. Я удалил свой ответ, и я выбрал ваш ответ как полезный;) – Ludwo

+0

@Ludwo - Полезно знать. Я думал, что что-то пропустил. –

+0

Слишком плохо. Спасибо –