Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用MSBUILD API更新*.CSPROJ_C#_Linq_Msbuild - Fatal编程技术网

C# 使用MSBUILD API更新*.CSPROJ

C# 使用MSBUILD API更新*.CSPROJ,c#,linq,msbuild,C#,Linq,Msbuild,根据问题: 我有代码从*.csproj文件中提取一些属性,如下所示: Project project = new Project(); var Property001= from pg in project.PropertyGroups.Cast<BuildPropertyGroup>() from item in pg.Cast<BuildProperty>() where item.Name =

根据问题:

我有代码从*.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();
Project项目=新项目();
var Property001=
来自project.PropertyGroups.Cast()中的pg
从第页铸件()中的项目开始
其中item.Name==“Property001”
选择item.Value.ToString();

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

您可以使用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";
}
var Property001item=
(来自project.PropertyGroups.Cast()中的pg)
从第页铸件()中的项目开始
其中item.Name==“Property001”
选择项);
如果(Property001item!=null)
{
Property001item.Value=“MyNewValue”;
}