msbuild выход ITaskItem - PullRequest
       17

msbuild выход ITaskItem

0 голосов
/ 25 января 2011

Я пытаюсь использовать задачу MSBuild.ExtensionPack.Web.Iis7AppPool с действием задачи GetInfo.Выходным параметром этой задачи является свойство SiteInfo, тип которого - ITaskItem.Это свойство, а не коллекция.

Как получить доступ к метаданным SiteInfo?Я могу получить доступ с помощью $, но тогда все, что я могу получить, это имя веб-сайта.Я пытался использовать% (SiteInfo.) Безуспешно.

1 Ответ

4 голосов
/ 25 января 2011

Если выходным параметром является ITaskItem, и вы хотите получить доступ к метаданным, вам нужно назначить их для ItemGroup вместо свойства.

 <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>
...