C# 影响原始.csproj文件中的更改

C# 影响原始.csproj文件中的更改,c#,file-io,reference,msbuild,csproj,C#,File Io,Reference,Msbuild,Csproj,我正在开发一个应用程序,根据需要从.csproj文件中添加/删除项目属性和引用 project.AddItem("Reference", "System.IO", globalProperties); project.AddItem("Reference", "System.Collections.Generic", globalProperties); 上面的代码添加了这些项。 当我在project.Items中打印项目项时,我能够看到添加的引用。当我打开需要修改的.csproj文件时,更改

我正在开发一个应用程序,根据需要从.csproj文件中添加/删除项目属性和引用

project.AddItem("Reference", "System.IO", globalProperties);
project.AddItem("Reference", "System.Collections.Generic", globalProperties);
上面的代码添加了这些项。 当我在project.Items中打印项目项时,我能够看到添加的引用。当我打开需要修改的.csproj文件时,更改不可见(因为正在传递文件副本)。 但是,我想对正在修改的.csproj文件进行更改。 我尝试使用“ref”关键字,但不起作用。 有人能告诉我怎么做吗


谢谢。

您必须先在您的参考之前添加一个项目组

var slItemGroup = project.Xml.CreateItemGroupElement();
project.Xml.InsertAfterChild(slItemGroup, project.Xml.LastChild);
slItemGroup.AddItem("Reference", "System.IO");
您必须调用项目的保存方法:

project.Save(projectFileName);

您必须在引用之前先添加一个项目组,就像这样

var slItemGroup = project.Xml.CreateItemGroupElement();
project.Xml.InsertAfterChild(slItemGroup, project.Xml.LastChild);
slItemGroup.AddItem("Reference", "System.IO");
您必须调用项目的保存方法:

project.Save(projectFileName);

你知道有一个标准的API吗?我在这里使用的是Microsoft.Build.Evaluation.Project,否则我无法访问Project和ProjectCollection类…因此,只需使用Save()方法…您知道有一个用于此的标准API吗?Microsoft.Build.Evaluation.Project我在这里使用它,否则我无法访问Project和ProjectCollection类…所以只需使用Save()方法。。。