2010-03-08 3 views
20

J'essaie de charger une liste de noms de fichiers à partir d'un fichier texte, puis d'exécuter une tâche Exec pour chaque entrée extraite du fichier texte.MsBuild exécute Exec pour chaque élément d'une liste

Je dispose d'un fichier, nous allons l'appeler Somefile.txt contenant les éléments suivants:

FileA.file 
FileB.file 
FileC.file 

Le code MsBuild je pour cela ressemble à ceci (ce qui ne fonctionne pas :)

<Target Name="runScripts"> 

    <ItemGroup> 
     <scriptsFile Include="SomeFile.txt" /> 
    </ItemGroup>   

    <ReadLinesFromFile File="@(scriptsFile)"> 
     <Output TaskParameter="Lines" ItemName="scriptItems" /> 
    </ReadLinesFromFile> 

    <Message Text="Running Exec for each entry..." />   
    <Exec Command="$(someCommand) %(scriptItems)" /> 

</Target> 

Cela me donne une erreur indiquant que je dois spécifier un nom d'élément, mais si j'utilise quelque chose comme% (scriptItems.item) ou% (itemname.scriptItems) MsBuild met simplement un blanc au lieu de% (scriptItems).

Répondre

29

Ok, j'ai tout compris

doivent tout simplement utiliser

% (scriptItems.Identity)

Questions connexes