Acessando projetos via DTE no modelo C # T4

Atualmente estou tentando iterar todos os meus projetos (sharepoint) para obter todos os guias de recursos em um arquivo. lá eu quero prefixo-los com o nome do projeto. Meu problema é DTE.Solution.Item e DTE.Solution.Projects.Item (ou os enumeradores de foreach) não terá um inteiro como parâmetro e foreach retorna um objeto que não pode ser convertido para o Project.

Aqui está o meu trecho de código:

var hostServiceProvider = (IServiceProvider) Host;
var dte = (DTE) hostServiceProvider.GetService(typeof(DTE));
var projectCount = dte.Solution.Projects.Count;

var projects = new Dictionary<string, string>();

foreach(Project dteProject in dte.Solution)
{
    var dteProject = dte.Solution.Item(i);
    projects.Add(dteProject.Name, dteProject.FullName);
}

Ok - o código está bem - o depurador NÃO é! Minhas Exceções foram lançadas em um contexto de depuração, mas o Modelo será executado corretamente se o depurador não estiver conectado.

questionAnswers(2)

yourAnswerToTheQuestion