C# 如何使用msbuild库访问ProjectReference名称
项目引用的MSBuild如下所示: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> 基础知识
<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>
你好
世界
元数据似乎是子数据的组合