2012-05-13 31 views
5

Tôi đang tạo gói mở rộng Visual Studio 2010 (Microsoft.VisualStudio.Shell.Package) cần phân tích tất cả các dự án và tham chiếu của dự án đó. Tôi cho rằng điều này được thực hiện với một dịch vụ (ví dụ: Package.GetService(typeof(IMenuCommandService))). Những gì tôi cần là giao diện có chứa các chức năng để có được một danh sách các dự án và tài liệu tham khảo cho các dự án. Ngoài ra, bất kỳ lời khuyên về nơi để tìm một tài liệu tham khảo có chứa các giao diện có sẵn trong studio trực quan sẽ được nhiều đánh giá cao.Nhận danh sách các dự án/tham chiếu trong Visual Studio 2010 Extension

Lưu ý rằng tôi đã thấy nhiều người đang cố gắng thực hiện điều gì đó tương tự bằng DTE từ macro. Đó không phải là những gì tôi đang cố gắng làm. Tôi đang cố gắng làm điều tương tự từ bên trong một Visual Studio Extension.

Trả lời

7

Vì vậy, mặc dù bạn đang thực hiện việc này như là một phần của tiện ích mở rộng, bạn vẫn sẽ cần sử dụng API DTE để nhận tất cả thông tin bạn muốn. Nó có vẻ ngược lại nhưng đó chỉ là cách nó hoạt động. Bạn nên lấy đối tượng DTE qua (EnvDTE.DTE)Package.GetService(typeof(SDTE)). Khi bạn có một số EnvDTE.Project, hãy truy cập thành viên Đối tượng của nó và truyền cho một số VSLangProj.VSProject nếu đó là dự án C# hoặc VB. Điều này có thông tin tham khảo bạn cần.

+0

Điều này có vẻ hơi lạ, nhưng tôi đã xác nhận câu trả lời của bạn. Cảm ơn bạn! –

+0

Có, cách duy nhất để nhận thông tin một cách đáng tin cậy là thông qua DTE. Nó ngớ ngẩn và ngược lại, nhưng đó là cách nó hoạt động. –

+0

Đôi khi bạn sẽ không nhận được tất cả các dự án: http://stackoverflow.com/questions/33209589/project-names-in-visual-studio-solution-sometimes-are-empty – alerya

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