29mai 2017

MSBuild: Copier un dossier avec wildcards

Une petite astuce pour copier des fichiers à partir d'une expression régulière avec MSBuild.

Avec cet exemple il est possible d'utiliser des wildcards pour identifier les éléments à copier.

<Target Name="BeforeBuild">
  [...]
  <ItemGroup>
    <_FoldersToCopy Include="$(ProjectDir)MyFolder\*TargetFolderSuffix\*.ext" />
  </ItemGroup>
  <Copy SourceFiles="@(_FoldersToCopy)"
    DestinationFolder="@(_FoldersToCopy->'$(TargetDir)MyFolder\%(RecursiveDir)')" />
  [...]
</Target>

Cela peut-être intéressant dans le cas où on utilise un pattern plugin et qu'on veut recopier toutes les librairies vers le répertoire de sortie.

Remarques

  • Si on place l'ItemGroup hors du target, Visual Studio l'efface automatiquement à chaque modification du csproj.
  • Ne fonctionne pas avec plusieurs dossiers qui porte le même nom.

aucun commentaire

Fil des commentaires de ce billet

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.