2011-09-26 13 views
5

Stworzyłem nowy pakiet rozszerzalności VS 2010. Do tej pory wszystko, co chcę zrobić, to nacisnąć przycisk i wypełnić widok listy całą zawartością rozwiązania. Mam następujący kod:Pakiet Visual Studio Extensibility nie patrząc na prawidłowy projekt

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()); 
    } 
} 

To wydaje się działać, jednak wypełnia listę z zawartością rozwiązania z pakietu w nim a nie instancję eksperymentalny, który jest uruchamiany, gdy ten jest prowadzony . Czy błędnie stawiam odnośnik?

Odpowiedz

1

GetActiveObject metoda zwraca pierwszą instancję procesu DTE, a nie program wywołujący DTE. (W Visual Studio 2010 SDK projekt w Visual Studio 2010, typu F5, aby execure gałęzi eksperymentalnej może zakończyć się niepowodzeniem)

Spójrz na here i here więcej szczegółów ...

Powiązane problemy