对于项目参考,MSBuild看起来像这样:
<ProjectReference Include="..\..\ABC\ABC\ABC.csproj">
<Name>ABC</Name>
<Project>{XXXXXXXXX}</Project>
<Package>{YYYYYYYY}</Package>
</ProjectReference>
我需要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);
}
item.Name
给了我ProjectReference。我需要&#34; ABC&#34;。我怎样才能获得这些数据?
答案 0 :(得分:2)
我在MSDN找到了一个很好的例子。您只需更改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>
元数据似乎是子数据的累积。