Как добавить ссылку на другой проект в мое решение с помощью автоматизации Visual Studio

Я создаю новое решение и добавляю в него несколько проектов через Solution2.AddFromTemplate. Теперь, прежде чем я смогу успешно построить свое решение, мне нужно добавить ссылку на проект из одного проекта в другой. Я пытаюсь ориентироваться в объектной модели автоматизации VS, но не могу найти, как это сделать.

Я понимаю, что могу просто открыть csproj как XML и изменить его на диске (как было предложено здесь), но тогда мне нужно, чтобы Visual Studio обнаружила изменение файла проекта и предложила перезагрузить его.

Кто-нибудь знает, как это сделать или указать мне в правильном направлении?


person MvdD    schedule 10.05.2013    source источник
comment
Щелкните проект правой кнопкой мыши -> Добавить ссылку -> Решение -> выберите другой проект для добавления. Разве этого недостаточно?   -  person filipko    schedule 11.05.2013
comment
Нет, я делаю это через API автоматизации Visual Studio. Элемент пользовательского интерфейса, на который нужно нажать, отсутствует, поскольку пользовательский интерфейс Visual Studio даже не отображается. См. также эту ссылку: msdn.microsoft.com /en-us/library/envdte%28v=vs.80%29.aspx   -  person MvdD    schedule 11.05.2013


Ответы (1)


Нашел ответ, разместив для дальнейшего использования.

Хитрость заключается в том, чтобы преобразовать свойство Object в EnvDTE.Project в VSProject и затем вызовите AddProject для его свойства References.

var targetProject = (VSProject) _project.Object;
targetProject.References.AddProject(sourceProject);
person MvdD    schedule 12.05.2013