Вывод 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