Вы можете поместить это в 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)
).