【问题标题】:Effect changes in the original .csproj file原始 .csproj 文件中的效果更改
【发布时间】:2012-08-15 14:49:16
【问题描述】:

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

project.AddItem("Reference", "System.IO", globalProperties);
project.AddItem("Reference", "System.Collections.Generic", globalProperties);

上面的代码添加了项目。 当我打印出 project.Items 中的 ProjectItems 时,我可以看到添加的引用。当我打开需要修改的 .csproj 文件时,更改不可见(因为正在传递文件的副本)。 但是,我想对正在修改的 .csproj 文件进行更改。 我尝试使用“ref”关键字,但不起作用。 谁能告诉我该怎么做?

谢谢。

【问题讨论】:

  • 你知道有一个标准的API吗? Microsoft.Build.Evaluation.Project msdn.microsoft.com/en-us/library/…
  • 我在这里使用它,否则我无法访问 Project 和 ProjectCollection 类...
  • 那么就使用 Save() 方法...

标签: c# file-io reference msbuild csproj


【解决方案1】:

你必须先添加一个项目组,然后再像这样引用

var slItemGroup = project.Xml.CreateItemGroupElement();
project.Xml.InsertAfterChild(slItemGroup, project.Xml.LastChild);
slItemGroup.AddItem("Reference", "System.IO");

你必须调用你项目的保存方法:

project.Save(projectFileName);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多