2011-03-29 8 views
0

リスト内の項目を何度も使用しようとしています。リストはMSBuildの拡張使用するディレクトリの名前から作成されます。私は別のインスタンスで、このリスト内の各アイテムを使用したいMSBuildを使用してリストから単一項目をポップする

<MSBuild.ExtensionPack.FileSystem.FindUnder TaskAction="FindDirectories" Recursive="false" Path="path\to\stuff\"> 
     <Output ItemName="AllFoundDirectories" TaskParameter="FoundItems"/> 
    </MSBuild.ExtensionPack.FileSystem.FindUnder> 

、すなわち:

<Message Text="##teamcity[testStarted name='%(AllFoundDirectories.FileName)']"/> 
<!-- do some stuff using %(AllFoundDirectories.FileName) here --> 
<Message Text="##teamcity[testFinished name='%(AllFoundDirectories.FileName)' duration='test_duration_in_milliseconds']"/> 

私が持っている問題であることのすべてリストは初めて参照されますMSBuildの変数%(AllFoundDirectories.FileName)を参照してください。一度に1つの変数をリストから取り出して、さまざまな場所で使用する方法はありますか?

答えて

2

依存ターゲットでターゲットバッチングを使用します。

<Target Name="MakeDirectoryItems"> 
    <MSBuild.ExtensionPack.FileSystem.FindUnder 
     TaskAction="FindDirectories" 
     Recursive="false" Path="path\to\stuff\"> 
     <Output 
     ItemName="AllFoundDirectories" 
     TaskParameter="FoundItems" 
     /> 
    </MSBuild.ExtensionPack.FileSystem.FindUnder> 
</Target> 

<Target Name="UseDirectoryItemsInBatch" 
    Outputs="%(AllFoundDirectories.Identity)"> 
    <!-- 
     while inside this target, the value of both @(AllFoundDirectories) 
     and %(AllFoundDirectories.Meta) will be just the single item 
     in each batch. 
    --> 
</Target> 

<Target Name="Driver" 
    DependsOnTargets="MakeDirectoryItems;UseDirectoryItemsInBatch"> 
</Target> 
+0

このmsbuildの拡張機能は、https://msdn.microsoft.com/en-us/library/ms164293.aspxになりました。 – diegohb

関連する問題