Я пытаюсь найти набор сборок на основе следующего соглашения в каталоге:
{SubDirName}\{SubDirName}.dll
Я начал с создания MSBuild ItemGroup [путем пакетирования другой ItemGroup в .RecursiveDirчасть].
<AllAssemblies Include="$(SourceDirectory)\**\Test.*.dll" />
<Dirs Include="@(AllAssemblies->'%(RecursiveDir)')"/>
Каждый элемент имеет косую черту, например:
<Message Text="@(Dirs)"/>
Говорит:
SubDir1\;SubDir2\;SubDir3\
Теперь я хочу создать наборимена файлов из этого списка.
Проблема заключается в том, что:
<AssembliesByConvention Include="@(Dirs -> '%(Identity)\%(Identity).dll')" />
Генерирует:
SubDir1\\SubDir1\.dll;SubDir2\\SubDir2\.dll;SubDir3\\SubDir3\.dll
Мне не нужны косые черты до периода в .dll
.
Какой самый чистый способ добиться этого?
Я знаю, что есть оператор выражения HasTrailingSlash, но в задачах OOTB нет признаков задачи RemoveTrailingSlash ?.Я не привередлив в том, что требуется версия MSBuild.