Msbuild可以动态生成Item.Metadata列表吗?

时间:2011-03-28 19:02:24

标签: msbuild metadata

<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)')" />

每个数据库都有一行,并写出列标题,然后写出每个数据库的元数据存储指标。

我是否可以使此任务更通用,以便动态生成数据输出列,就像完成列标题一样?在某些方面,这将是由另一个项目组根据输入动态列入白名单的自定义元数据。

1 个答案:

答案 0 :(得分:0)

请在下面的链接中查看此答案,该链接有点类似,将项目元数据写入文件。您需要查看ITaskItem的文档,特别是ITaskItem.CloneCustomMetadata以获取您正在寻找的通用行为。

Passing Items to MSBuild Task