2011-01-25 52 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>