Как удалить элементы из файловой группы элементов, которые находятся в другой группе элементов только с именами файлов?

У меня есть список сборок/имена , которые не следует копировать в binпапка примерно выглядит так:

      <ItemGroup>
  <StockAssembly Include="PdfSharp.Charting.resources" />
  <StockAssembly Include="PdfSharp.resources" />
  <StockAssembly Include="Antlr3.Runtime" />
  <StockAssembly Include="ChilkatDotNet47" />
  ...

Я ловлю свою цель где-то рядом CopyFilesToOutputDirectoryчтобы избежать копирования этих сборок.

Список разрешенных сборок ( для копирования ) находится в ItemGroup.

Мне нужно исключить сборки из ReferenceCopyLocalPathsс именами, упомянутыми в StockAssemblyГруппа элементов.

Решение , которое я нашел до сих пор, включает в себя объединение кандидатов в один текст и выполнение манипуляций со строками сверху:

      <PropertyGroup>
 <StockAssemblies>;@(StockAssembly);</StockAssemblies>
</PropertyGroup>

<ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)" Condition="$(StockAssemblies.Contains(';%(Filename);'))"/> 

Концептуально неправильно сглаживать коллекцию, чтобы найти в ней точное совпадение, поскольку строка содержит =\

Не могли бы вы посоветовать, есть ли лучший вариант?

Спасибо.

0 ответов

Другие вопросы по тегам