Проблема с макросом Visual Studio для удаления проекта из решения - PullRequest
0 голосов
/ 01 апреля 2011

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

DTE.ActiveWindow.Object.GetItem("PerfixEMS\Allocations\BDAUploader\perFIXAllocationsFTP").Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ExecuteCommand("Edit.Delete")

Этот макрос хорошо работает, если проект находится в решении, но вызывает время выполненияошибка, если она уже была удалена.Даже присвоение результата, если GetItem переменной Object, для проверки Ничего перед вызовом Select, вызывает ошибку времени выполнения.Как я могу проверить ошибки этого макроса?

1 Ответ

0 голосов
/ 01 апреля 2011

Вы можете поместить это в Try блок:

Try
    DTE.ActiveWindow.Object.GetItem("PerfixEMS\Allocations\BDAUploader\perFIXAllocationsFTP").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.ExecuteCommand("Edit.Delete")
Catch
End Try

Обновление: Я думаю, что ваш макрос не очень безопасен. Он использует активное окно, и это окно может быть любым окном. Я предлагаю что-то вроде этого:

Try
    DTE.Solution.Remove(DTE.Solution.Projects.Item("test.vcproj"))
Catch
End Try

На проект ссылается его свойство UniqueName здесь. Это имя - путь проекта относительно решения и его расширения файла. Вы можете изучить свойства, запустив макрос в отладчике макросов. На проекты также можно ссылаться по их индексу на основе 1 (DTE.Solution.Projects.Item(1)).

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