Обнаружить открытый проект в визуальной студии - PullRequest
2 голосов
/ 25 сентября 2010

Я создаю визуальную студийную надстройку, которая добавляет файлы в текущий открытый проект. Как я могу определить, что в данный момент открыто? По мере того как мне нужно извлечь местонахождение папки / файла.

1 Ответ

2 голосов
/ 25 сентября 2010

Вы можете получить все проекты в решении, используя следующий код:

private DTE2 dte2;

public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    dte2 = (DTE2)application;
    var events = (Events2)dte2.Events;
    solutionEvents = events.SolutionEvents;

    solutionEvents.Opened += OnSolutionOpened;
}

private void OnSolutionOpened()
{
    Projects projects = dte2.Solution.Projects;

    foreach (Project project in projects)
    {
        ProcessProject(project);
    }
}

private void ProcessProject(Project project)
{
    string directoryName = Path.GetDirectoryName(project.FileName);
    string fileName = Path.GetFileName(project.FileName);

    if (directoryName == null || fileName == null)
    {
        return;
    }

    var directory = new DirectoryInfo(directoryName);
    var fileInfo = new FileInfo(fileName);

    //do work
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...