是否有可用的msbuild文件解析器?

是否有可用的msbuild文件解析器?,msbuild,Msbuild,我正在寻找MSbuild文件解析器。目前我已经写了我自己的,这是不完整的。。。但我觉得我正在重新创造车轮制造的东西肯定已经存在 我在这里找到了一些信息 此外,还有一个小型项目,其中包含一些高级样本: Microsoft.Build.dll(版本4.0+)中的Microsoft.Build.Construction.XXX是MSBuild文件的“原始”解析器。它功能强大、完整,类似于XMLDOM。它在单个文件上工作,不进行评估。例如,当您希望在项目树上运行脚本以某种方式编辑它们时,它非常有用,可能

我正在寻找MSbuild文件解析器。目前我已经写了我自己的,这是不完整的。。。但我觉得我正在重新创造车轮制造的东西肯定已经存在

我在这里找到了一些信息

此外,还有一个小型项目,其中包含一些高级样本:


Microsoft.Build.dll(版本4.0+)中的Microsoft.Build.Construction.XXX是MSBuild文件的“原始”解析器。它功能强大、完整,类似于XMLDOM。它在单个文件上工作,不进行评估。例如,当您希望在项目树上运行脚本以某种方式编辑它们时,它非常有用,可能需要添加一个公共导入语句

Microsoft.Build.Evaluation.XXX在评估过的项目上工作——即,使用评估过的所有属性、导入的文件等等。它在开发环境中很有用-您可以读取项目中的文件和属性,添加新文件等等。VisualStudio为此目的使用它

在4.0之前,在microsoft.build.engine.dll中有一个完全不同、更有限、更不完整的对象模型。它仍然附带4.0,但无法处理某些4.0语法。它已被弃用


我设计并实现了这些功能,因此如果您有任何反馈,我都会感兴趣。

解析器取决于您希望通过解析器实现的目标。我创建了两种不同的方法:一种用于备份解决方案中的所有文件,另一种用于创建wix文件。您想对解析器做什么?我想分析我的msbuild文件,并在自制的“msbuild runner”应用程序中可视化目标。我找到了这两个URL,但它们不包含任何示例代码,我认为[1]不是您的意思。你能给我指一下样品吗?非常感谢。1.[] ; 从微软官方下载中心下载日志解析器2.2;2.[] ; X.Microsoft.Build.Construction命名空间();;
using Microsoft.Build.Construction;
using Microsoft.Build.Evaluation;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        Project testProj = new Project();
        testProj.Xml.AddTarget("BuildProjects");
        foreach (ProjectTargetElement pti in testProj.Xml.Targets.Where(pti => pti.Name == "BuildProjects"))
        {
            pti.AddTask("MSBuild");   
        }   
        testProj.Save(@"C:\testProj.proj");
    }
}