VS2010 DTE Addin: проект внутри папки решения не является «Project»

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

Application.DTE.Solution.Projects.OfType<Project>();

Однако, как только я ввел папку решения и поместил в нее проект, внезапно этого проекта нигде не было. Итак, я пробовал

 private IEnumerable<Project> getProjectsRecursive(IEnumerable<Project> iEnumerable)
 {
      foreach (var item in iEnumerable)
      {
          yield return item;
          foreach (var child in getProjectsRecursive(item.ProjectItems.OfType<Project>()))
          {
              yield return child;
          }
      }
 }
public IEnumerable<Project> EveryProject { get { return getProjectsRecursive(Application.DTE.Solution.Projects.OfType<Project>()); } }

, но проекта нет. Итак, я проверил вручную, вызывая элемент Project в проекте

  • непосредственно внутри решения, это TRUE
  • , папка решения непосредственно внутри решения имеет значение TRUE ( small wtf)
  • внутри папки решения (я нашел его в папке .ProjectItems ) имеет значение FALSE !!!!! (и, конечно же, явное приведение приводит к ошибке)

Какого черта? Без преобразования его в Project , я не могу вызвать FullName , Properties () и многое другое, даже если я приведу к dynamic ]. Пожалуйста, помогите!

6
задан TDaver 20 June 2011 в 12:12
поделиться