MSBuild разбор метаданных - PullRequest
       22

MSBuild разбор метаданных

0 голосов
/ 05 января 2011

Есть ли способ изменить каждый элемент в группе элементов?Например, учитывая этот элемент:

<_CustomAreas Include="..\My.Project.*\Areas\**\*.*" Condition="'$(AppBuildFolder)' == ''" />

Я хочу удалить часть ".. \ My.Product. *. В основном у нас есть отдельный проект, содержащий области MVC, и в Package / Deployment (MSDeploy)мы хотим скопировать их в основной проект. Вот где используется группа:

<FilesForPackagingFromProject Include="%(_CustomAreas.Identity)">
    <DestinationRelativePath>Areas\%(relativedir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>

$(relativedir) проходит как ".. \ My.Project.Plugin1 \ Areas **. ", и он заканчивается в пакете как ZipFileRoot\My.Project.Plugin1\Areas (.. отступает от жестко закодированных областей, а затем просто создает папку для плагина \ областей), где я бы хотел, чтобы все на самом деле закончилосьв ZipFileRoot\Areas.

Спасибо, Энди

Ответы [ 3 ]

0 голосов
/ 06 января 2011

Задача RegexReplace (учетные данные: гость / гость) должна соответствовать \My.Product.* и заменяться пустой строкой.

Примерно так должно работать: (непроверено, нужночтобы проверить выход)

<RegexReplace Input="%(_CustomAreas)" Expression="\\My\.Product\..*" Replacement="" Count="-1">
    <Output ItemName="_CustomAreas" TaskParameter="Output" />
</RegexReplace>

Есть небольшая работа по запуску Задачи сообщества MSBuild , но там достаточно хороших вещей, чтобы я нашел это стоящим усилий.

0 голосов
/ 11 мая 2013

Элементы в ItemGroups могут иметь атрибут Exclude, который позволяет вам указывать элементы для исключения.

0 голосов
/ 06 января 2011

С MsBuild 4.0 Вы можете использовать методы String непосредственно в вашем скрипте (или использовать встроенные задачи). С помощью этой опции вы можете отредактировать ваш относительный каталог, чтобы удалить часть My.Project. *.

Вы можете увидеть примеры в этой статье: http://sedodream.com/2010/03/07/MSBuild40PropertyFunctionsPart1.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...