2011-01-25 4 views
0

MSBuild.ExtensionPack.Web.Iis7AppPool 작업에 GetInfo 작업 동작을 사용하려고합니다. 이 태스크의 출력 매개 변수는 SiteInfo 속성이며, 유형은 ITaskItem입니다. 이것은 수집 물이 아니라 속성입니다.msbuild ITaskItem 출력

어떻게 SiteInfo 메타 데이터에 액세스 할 수 있습니까? 나는 $로 접근 할 수있다. 그러나 내가 얻을 수있는 것은 모두 웹 사이트 이름이다. % (SiteInfo.)를 사용하려고 시도했지만 성공하지 못했습니다.

답변

4

출력 매개 변수가 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>