2012-08-15 3 views
1

Я разрабатываю приложение, которое при необходимости добавляет/удаляет свойства проекта и ссылки из файла .csproj.Изменения в исходном файле .csproj

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

Приведенный выше код добавляет элементы. Когда я распечатываю ProjectItems в project.Items, я могу видеть дополнительные ссылки. Когда я открываю файл .csproj, который необходимо изменить, изменения не видны (поскольку копия файла передается). Тем не менее, я хочу внести изменения в файл .csproj, который изменяется. Я пробовал использовать ключевое слово «ref», но не работает. Может ли кто-нибудь сказать мне, как это сделать?

Спасибо.

+0

Вы знаете, что есть стандартный API для этого? Microsoft.Build.Evaluation.Project http://msdn.microsoft.com/en-us/library/microsoft.build.evaluation.project.aspx –

+0

Я использую это здесь, иначе я не мог бы получить доступ к классам Project и ProjectCollection ... – aromore

+1

Итак, просто используйте метод Save() ... –

ответ

1

у вас есть о добавьте первый в группу элементов перед вашей ссылке как этот

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

и вы должны вызвать метод сохранения вашего проекта:

project.Save(projectFileName);