C# 如何使用msbuild库访问ProjectReference名称

C# 如何使用msbuild库访问ProjectReference名称,c#,.net,msbuild,C#,.net,Msbuild,项目引用的MSBuild如下所示: <ProjectReference Include="..\..\ABC\ABC\ABC.csproj"> <Name>ABC</Name> <Project>{XXXXXXXXX}</Project> <Package>{YYYYYYYY}</Package> </ProjectReference> 基础知识

项目引用的MSBuild如下所示:

   <ProjectReference Include="..\..\ABC\ABC\ABC.csproj">
      <Name>ABC</Name>
      <Project>{XXXXXXXXX}</Project>
      <Package>{YYYYYYYY}</Package>
    </ProjectReference>

基础知识
{XXXXXXXXX}
{YYYYYYYY}
我需要ProjectReference.Name。我正在使用Microsoft.Build.BuildEngine提取数据

  var projectReference =
        from grp in project.ItemGroups.Cast<BuildItemGroup>()
        from item in grp.Cast<BuildItem>()
        where item.Name == "ProjectReference"
        select item;

    foreach (BuildItem item in projectReference)
    {
        References.Add(item.Name);
    }
var项目参考=
来自project.ItemGroups.Cast()中的grp
来自grp.Cast()中的项
其中item.Name==“ProjectReference”
选择项目;
foreach(项目参考中的BuildItem项目)
{
参考。添加(项目名称);
}

item.Name
为我提供了项目参考。我需要“ABC”。如何获取这些数据?

我在上找到了一个很好的例子。您只需更改for循环即可提取元数据:

   foreach (BuildItem item in projectReference)
    {
        var name = item.GetMetadata("Name");
        References.Add(name);
    }
在我看到的例子中,
BuildItem
表示一个XML元素及其属性:

<element attribute="blah">
  <meta1>hello</meta1>
  <meta2>world</meta2>
</element>

你好
世界
元数据似乎是子数据的组合