Question

Y at-il de toute façon de modifier chaque élément dans un groupe d'articles? Par exemple, étant donné ce point:

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

Je veux supprimer le » .. \ My.Product. * Partie. En fait, nous avons projet distinct contenant des zones MVC, et dans le Package / déploiement (MSDeploy) nous voulons les copier dans le projet principal. Ici est où le groupe est utilisé:

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

$(relativedir) vient à travers comme ".. \ My.Project.Plugin1 \ Régions * *. " et il finit dans le paquet comme ZipFileRoot\My.Project.Plugin1\Areas (Le .. désiste des zones hardcoded, puis il crée simplement le dossier pour le plug-in zones \) où je voudrais qu'il fait tout en fin ZipFileRoot\Areas.

Merci Andy

Était-ce utile?

La solution

Le REGEXREPLACE (pouvoirs: guest / guest). tâche devrait être en mesure de faire correspondre \My.Product.* et le remplacer par une chaîne vide

Quelque chose comme cela devrait fonctionner: (non testé, besoin de vérifier échapper)

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

Il y a un peu de travail obtenir le MSBuild tâches communautaires et en cours d'exécution, mais assez bonnes choses là-dedans pour moi pour le trouver en vaut la peine.

Autres conseils

Avec MsBuild 4.0 Vous pouvez utiliser des méthodes directement cordes dans votre script (ou utilisez des tâches en ligne). Avec cette option, vous pouvez modifier votre relativedir pour supprimer le My.Project. * Partie.

Vous pouvez voir des exemples dans cet article: http://sedodream.com/2010/ 03/07 / MSBuild40PropertyFunctionsPart1.aspx

Les produits dans ItemGroups peuvent avoir un attribut Exclure qui vous permet de spécifier les éléments à omettre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top