Msbuild能否动态生成项元数据的列表? @(多列,“,”)

Msbuild能否动态生成项元数据的列表? @(多列,“,”),msbuild,metadata,Msbuild,Metadata,我为每个数据库创建一行,写出列标题,然后写出每个数据库存储的元数据度量 我是否可以使此任务更通用,以便像列标题一样动态生成数据输出列?在某些方面,这将是另一个项目组根据输入动态列出的自定义元数据白名单。请参见下面链接中的答案,这与将项目元数据写入文件有点类似。您需要查看ITaskItem的文档,特别是ITaskItem.CloneCustomMetadata,以获得所需的一般行为 <SqlToMetadataMultiTask ConnectionString="$(Connection

我为每个数据库创建一行,写出列标题,然后写出每个数据库存储的元数据度量


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

请参见下面链接中的答案,这与将项目元数据写入文件有点类似。您需要查看ITaskItem的文档,特别是ITaskItem.CloneCustomMetadata,以获得所需的一般行为

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