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