2013-05-01 40 views
0

我有一個MSBuild腳本,其中定義了TargetItemGroupMSBuild屬性未更新以反映當前項目的標識

目標裏面,我定義的PropertyGroup像這樣:

<PropertyGroup> 
    <StartedMessage>##teamcity[testStarted name='%(Names.Identity)']</StartedMessage> 
    <FinishedMessage>##teamcity[testFinished name='%(Names.Identity)']</FinishedMessage> 
    <TestStatus>testPassed</TestStatus> 
</PropertyGroup> 

問題是,這些特性似乎只是一次評估(當目標被調用),因此不反映正確的我正在迭代的項目的值(標識元數據)。

有什麼辦法可以在執行期間延遲(懶惰)評估屬性嗎? 或者定義迭代ItemGroup時需要更改的「動態」屬性的正確方法是什麼?

回答

0

不確定將物品組放置在屬性組中的意圖是在嘗試實現什麼,可能是這樣的?

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<ItemGroup> 
<Tests Include="Hack;Destroy;Terminate"/> 
</ItemGroup> 

<Target Name="Iterate"> 
<Message text="Started %(Tests.Identity)"/> 
</Target> 
</Project> 
+0

重點是我試圖簡化表達式需要寫入,以避免任何錯誤。我想創建一個屬性組,每次批量項目組的Identity元素都將包含相關項目,然後在目標中使用此屬性(而不是在需要的每個位置寫滿整個字符串)。 – 2013-05-02 10:49:02

相關問題