J'essaie de rechercher un ensemble d'assemblages en fonction de la convention suivante dans un répertoire :
{SubDirName}\{SubDirName}.dll
J'ai commencé par créer un ItemGroup MSBuild [en mettant en lot un autre ItemGroup sur la partie .RecursiveDir].
<AllAssemblies Include="$(SourceDirectory)\**\Test.*.dll" />
<Dirs Include="@(AllAssemblies->'%(RecursiveDir)')"/>
Chaque élément est suivi d'une barre oblique, par exemple :
<Message Text="@(Dirs)"/>
C'est dit :
SubDir1\;SubDir2\;SubDir3\
Maintenant, je veux générer un ensemble de noms de fichiers à partir de cette liste.
Le problème est le suivant :
<AssembliesByConvention Include="@(Dirs -> '%(Identity)\%(Identity).dll')" />
Génère :
SubDir1\\SubDir1\.dll;SubDir2\\SubDir2\.dll;SubDir3\\SubDir3\.dll
Je ne veux pas que les barres obliques soient placées avant le point dans .dll
.
Quel est le moyen le plus propre d'y parvenir ?
Je sais qu'il existe un opérateur d'expression HasTrailingSlash, mais il n'y a aucun signe d'une tâche RemoveTrailingSlash dans les tâches OOTB ? Je ne suis pas pointilleux sur la version de MSBuild requise.