msbuild ITaskItem изход

Опитвам се да използвам задача MSBuild.ExtensionPack.Web.Iis7AppPool с действие на задача GetInfo. Изходният параметър на тази задача е свойството SiteInfo, чийто тип е ITaskItem. Това е собственост, а не колекция.

Как мога да получа достъп до метаданните на SiteInfo? Мога да получа достъп с $, но тогава всичко, което мога да получа, е името на уеб сайта. Опитах се да използвам %(SiteInfo.) без успех.


person sagie    schedule 25.01.2011    source източник


Отговори (1)


Ако изходният параметър е 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>
person Brian Walker    schedule 25.01.2011