Re[9]: Отрывалка ненужных референсов
От: dsha  
Дата: 10.12.07 19:32
Оценка: 12 (1)
Здравствуйте, achmed, Вы писали:

A>Здравствуйте, orangy, Вы писали:


A>>>Я ведь могу использовать Devexpress в плагине?

O>>Насколько я понимаю, впрямую не можешь. Но там есть TreeModelPresentableView и его тебе должно хватить.


A>Наконец то добрался ...


A>Появились вопросы:

A>1) Как удалить референс у проекта?
A>Делаю так:

A>
A>IProject project = moduleReference.GetProject();
A>project.RemoveModuleReference(moduleReference);
A>


A>В итоге референс удаляется только в модели решарпера, в UI студии референс остается.


К сожалению, простого способа сделать это в 3.0 нет. IProject.RemoveModuleReference действительно удаляет референс только из модели Решарпера. Что можно сделать:

1) Получить EnvDTE.Project через ProjectModelSynchronizer.GetProjectInfoByProject и далее GetExtProject() у VSProjectInfo.
2) Взять Project.Object, привести его к VSLangProj.VSProject
3) Из коллекции VSProject.References получить VSLangProj.Reference, имя (Name) которого совпадает с IModuleReference.Name
4) Сделать VSLangProj.Reference.Remove

Скорее всего, "настоящий" RemoveModuleReference появится в 4.0 (он работал бы так же, как описанный алгоритм, за исключением пункта 3).

Regards,
Dmitry
JetBrains, Inc.
"Develop with pleasure!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.