msbuild ITaskItem 输出

sag*_*gie 0 msbuild msbuild-task itaskitem

我正在尝试将MSBuild.ExtensionPack.Web.Iis7AppPool任务与 GetInfo 任务操作一起使用。该任务的输出参数是SiteInfo属性,其类型是ITaskItem。这是财产,而不是收藏。

如何访问 SiteInfo 元数据?我可以用 $ 访问,但我只能得到网站名称。我尝试使用 %(SiteInfo.) 但没有成功。

Bri*_*ker 5

如果输出参数是 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>
Run Code Online (Sandbox Code Playgroud)