Attualmente sto cercando di ripetere tutti i miei progetti (sharepoint) per ottenere tutti i guids delle funzionalità in un file. li voglio prefisso con il nome del progetto. Il mio problema è DTE.Solution.Item e DTE.Solution.Projects.Item (o gli enumeratori foreach) non prenderanno un numero intero come parametro e foreach restituisce un oggetto che non è applicabile a Project.Accesso ai progetti tramite DTE in C# T4 Template
Ecco il mio frammento di codice:
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);
}
Va bene - il codice va bene - il debugger non è! Eccezioni personali in cui viene inserito in un contesto di debug, ma il modello funzionerà correttamente, se il debugger non è collegato.
sto vedendo questo esatto lo stesso problema, e appena incontrato questa mattina (buona scelta di tempo sulla questione). Nel mio caso sta lanciando un InvalidCastException durante l'iterazione di Project.ProjectItems. Come descritto di seguito, genera solo durante il debug del modello. – daveaglick