2011-01-25 58 views
0

我試圖用GetInfo任務操作使用MSBuild.ExtensionPack.Web.Iis7AppPool任務。 此任務的輸出參數是SiteInfo屬性,其類型爲ITaskItem。這是一個propery,而不是一個集合。msbuild ITaskItem輸出

如何訪問SiteInfo元數據?我可以訪問$,但是我可以得到的只是網站的名稱。我試圖用%(SiteInfo。)沒有成功。

回答

4

如果輸出參數是ITaskItem,並且您想要訪問元數據,則需要將其分配給ItemGroup而不是Property。

<Target Name="Test"> 

    <MSBuild.ExtensionPack.Web.Iis7AppPool 
     TaskAction="GetInfo" 
     Name="DefaultAppPool"> 

     <Output TaskParameter="AppPoolInfo" ItemName="PoolInfo" /> 
    </MSBuild.ExtensionPack.Web.Iis7AppPool> 

    <Message Text="AppPool info = [@(PoolInfo)]" /> 
    <Message Text="AppPool MaxProcesses = [%(PoolInfo.MaxProcesses)]" /> 

    <MSBuild.ExtensionPack.Web.Iis7WebSite 
     TaskAction="GetInfo" 
     Name="Default Web Site"> 

     <Output TaskParameter="SiteId" PropertyName="WebId" /> 
     <Output TaskParameter="SiteInfo" ItemName="WebInfo" /> 
    </MSBuild.ExtensionPack.Web.Iis7WebSite> 

    <Message Text="WebSite id = [$(WebId)]" /> 
    <Message Text="WebSite app pool = [%(WebInfo.ApplicationPoolName)]" /> 

    </Target>