#c# #visual-studio #csproj
Вопрос:
У меня есть несколько элементов, которые следует удалить из содержимого, компиляции и встроенного ресурса. Я делаю это вот так сейчас:
<Content Remove="data**" />
<Content Remove="other**" />
<Content Remove="etc**" />
<Compile Remove="data**" />
<Compile Remove="other**" />
<Compile Remove="etc**" />
<EmbeddedResource Remove="data**" />
<EmbeddedResource Remove="other**" />
<EmbeddedResource Remove="etc**" />
Это работает, но значительно раздувает файл проекта. В идеале я хотел бы создать что-то вроде:
<RemoveAll Include="data**" />
... some magic that checks RemoveAll and
emits Content, Compile and EmbeddedResource for all RemoveAlls
...
Возможно ли это в csproj? Я уже немного поэкспериментировал с целями, но не смог заставить цель удалить эти предметы.
Комментарии:
1. В качестве альтернативы, не могли бы вы поместить все эти ресурсы во вложенную папку, а затем исключить эту вложенную папку?
2. @MatthewWatson Нет, к сожалению, я не могу его контролировать, он создан зависимостью от третьей стороны.
Ответ №1:
Единственный подход, о котором я знаю, был бы:
<ItemGroup>
<RemoveMe Include="data**" />
<RemoveMe Include="other**" />
<RemoveMe Include="etc**" />
<None Remove="@(RemoveMe)" />
<Compile Remove="@(RemoveMe)" />
<EmbeddedResource Remove="@(RemoveMe)" />
</ItemGroup>
Я уже немного поэкспериментировал с целями, но не смог заставить цель удалить эти предметы.
Обратите внимание, что удаление элементов в целевых объектах не приведет к их удалению из обозревателя решений в Visual Studio. Представление о проекте в SE основано на оценке, при которой не выполняются никакие целевые показатели.
Комментарии:
1. Хм, для меня это замирает.