2011-09-26 34 views
5

Tôi đã tạo một gói mở rộng VS 2010 mới. Cho đến nay, tất cả những gì tôi muốn làm là cho phép người dùng nhấn một nút và điền vào một listview với toàn bộ nội dung của giải pháp. Tôi có đoạn mã sau:Gói Visual Studio Extensibility không nhìn vào đúng dự án

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

này dường như để làm việc, tuy nhiên, nó populates danh sách với các nội dung của giải pháp với gói trong đó và không phải là ví dụ thực nghiệm được đưa ra khi điều này được chạy . Tôi có tạo ra tham chiếu sai không?

Trả lời

1

GetActiveObject phương thức trả về phiên bản đầu tiên của DTE, không phải là người gọi DTE. (Trong Visual Studio SDK năm 2010. Dự án trên Visual Studio 2010, loại F5 để execure hive thực nghiệm có thể thất bại)

Nhìn vào herehere để biết thêm chi tiết ...

Các vấn đề liên quan