【问题标题】:Updating a *.CSPROJ using MSBUILD API使用 MSBUILD API 更新 *.CSPROJ
【发布时间】:2011-02-14 23:23:17
【问题描述】:

基于问题:Reading a *.CSPROJ file in C#

我有代码可以从 *.csproj 文件中提取一些属性,如下所示:

Project project = new Project();

var Property001=
            from pg in project.PropertyGroups.Cast<BuildPropertyGroup>()
            from item in pg.Cast<BuildProperty>()
            where item.Name == "Property001"
            select item.Value.ToString();

这很好,但下一个问题是如何使用 LINQ 更新属性?

【问题讨论】:

    标签: c# linq msbuild


    【解决方案1】:

    您可以使用 LINQ 获取要更新的属性项(而不仅仅是值):

    var Property001item =
            (from pg in project.PropertyGroups.Cast<BuildPropertyGroup>()
            from item in pg.Cast<BuildProperty>()
            where item.Name == "Property001"
            select item).FirstOrDefault();
    if (Property001item != null)
    {
        Property001item.Value = "MyNewValue";
    }
    

    【讨论】: