Как программно найти и перебрать все ссылки на проекты и библиотеки DLL в решении Visual Studio 2010?
Я могу перебрать все проекты и нашел свойства Project.ProjectItems
и Project.Properties
, но не нашел способа ссылаться на ссылки (предназначено для каламбура).
Это происходит внадстройка, поэтому решение DTE предпочтительнее для всех, кто предлагает перебирать файлы.
Предлагаемое решение на основе ответов ниже:
Вам необходимо найти и включить ссылкув VSLangProj.dll (например, в Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies
)
Затем вы можете выполнить итерацию всех проектов и ссылок на все выбранные проекты следующим образом:
foreach (Project project in (object[])_applicationObject.ActiveSolutionProjects)
{
VSProject vsProject = project.Object as VSProject;
if (vsProject != null)
{
foreach (Reference reference in vsProject.References)
{
// Do cool stuff here
}
}
}
_applicationObject является приватным участником в моей надстройке, например
private DTE2 _applicationObject;
Я установил его в соединении следующим образом:
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;