2011-09-26 12 views
5

Ho creato un nuovo pacchetto di estensibilità VS 2010. Finora, tutto quello che voglio fare è chiedere all'utente di premere un pulsante e riempire una lista con l'intero contenuto della soluzione. Ho il seguente codice:Visual Studio Extensibility Package non guardando il progetto corretto

EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal. 
    GetActiveObject("VisualStudio.DTE.10.0"); 

foreach (Project project in dte.Solution.Projects) 
{ 
    foreach(ProjectItem pi in project.ProjectItems) 
    { 
     listView1.Items.Add(pi.Name.ToString()); 
    } 
} 

Questo non sembra funzionare, però, l'elenco con il contenuto della soluzione con il pacchetto in esso e non l'istanza sperimentale che viene lanciato quando questo viene eseguito . Sto istanziando il riferimento in modo errato?

risposta

1

GetActiveObject il metodo restituisce la prima istanza di processo di DTE, non chiamante DTE. (In Visual Studio SDK 2010 Progetto su Visual Studio 2010, tipo F5 per execure alveare sperimentale potrebbe non riuscire)

Guardate here e here per maggiori dettagli ...

Problemi correlati