开发者

Can Msbuild dynamically generate a list of Item.Metadata?

开发者 https://www.devze.com 2023-02-20 04:00 出处:网络
<SqlToMetadataMultiTask ConnectionString=\"$(ConnectionString)\"> <Output TaskParameter=\"Items\" ItemName=\"MultiStats\" />
<SqlToMetadataMultiTask ConnectionString="$(ConnectionString)">
         <Output TaskParameter="Items" ItemName="MultiStats" />
         <Output TaskParameter="Columns" ItemName="MultiColumns"开发者_运维技巧 />
        </SqlToMetadataMultiTask>   
        <PropertyGroup>
            <OutputFormat>@(MultiColumns,',')</OutputFormat>
        </PropertyGroup>
        <Message Text="Columns=@(MultiColumns,',')"/>
        <WriteLinesToFile File="SqlMetricsMulti.csv" Overwrite="true" Lines="@(MultiColumns,',')" />
        <WriteLinesToFile File="SqlMetricsMulti.csv" Overwrite="false" 
            Lines="@(MultiStats->'%(db),%(num_procs),%(len_procs),%(cursors_refs),%(tt_refs),%(ifs),%(cases),%(where),%(join),%(ands),%(ors)')" />

I have a row for each database, and write out the column headers, then the metadata-stored metrics for each database.

Can I make this task more generic so that the data output columns are generated dynamically just like the Column headers are being done? In some ways this would be custom metadata whitelisting by another item group dynamically based on the input.


See this answer in the link below, which is somewhat similar, writing out item meta data to a file. You'll need to check out the docs for ITaskItem, specifically ITaskItem.CloneCustomMetadata to get the generic behavior you're looking for.

Passing Items to MSBuild Task

0

精彩评论

暂无评论...
验证码 换一张
取 消