2017-09-24 23 views
5

Tiện ích mở rộng Visual Studio của tôi phản hồi việc mở một giải pháp qua IVsSolutionEvents.OnAfterOpenSolution().Trong phần mở rộng Visual Studio, cách trả lời "Mở thư mục" cũng như "Giải pháp mở"?

Visual Studio 2017 đã giới thiệu "Open Folder" làm phương án thay thế cho "Giải pháp mở", nhưng khi bạn mở thư mục, IVsSolutionEvents.OnAfterOpenSolution() không kích hoạt. (Cũng không thực hiện bất kỳ sự kiện nào khác trong số IVsSolutionEvents cũng như bất kỳ sự kiện nào trong số IVsSolutionLoadEvents.)

Làm cách nào để tiện ích mở rộng của tôi biết khi Thư mục, trái ngược với Giải pháp?

+0

Bạn đang tìm kiếm IVsSolutionEvents7 :: OnAfterOpenFolder? https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.interop.ivssolutionevents7?view=visualstudiosdk-2017 –

+0

@SimonMourier: Điều đó có vẻ hoàn hảo, nhưng khi tôi triển khai và vượt qua việc triển khai đối tượng với 'IVsSolution.AdviseSolutionEvents()', không có sự kiện 'IVsSolutionEvents7' nào kích hoạt. Đối tượng cũng thực hiện 'IVsSolutionEvents', và những sự kiện đó sẽ kích hoạt. Có ý tưởng gì không ...? – RichieHindle

+0

Không, tôi đoán đây thực sự là cách duy nhất. Một số VS dll thực hiện giao diện giống như vậy (ví dụ: Microsoft.VisualStudio.Shell.UI.Internal, lớp Microsoft.VisualStudio.PlatformUI.StartPageToolWindowPane). Bạn có thể thử triển khai ICustomQueryInterface tạm thời chỉ để kiểm tra xem nó có yêu cầu giao diện đó hay không. –

Trả lời

6

Bạn phải sử dụng các IVsSolutionEvents7.OnAfterOpenFolder Method đó đã được thêm vào cho Visual Studio 2017.

thông báo cho khách hàng nghe rằng thư mục đã được mở.

public void OnAfterOpenFolder (string folderPath); 

Do đây là một giao diện COM bản xứ, bạn cũng phải chắc chắn rằng các lớp thực hiện là COM có thể nhìn thấy (thông qua ComVisible thuộc tính mà bạn có thể thiết lập về lắp ráp, trên lớp, trên một lớp cơ sở , v.v.)

+0

Tuyệt vời - cảm ơn nhiều! Tôi có một câu hỏi tiếp theo ở đây: https://stackoverflow.com/questions/46432488/ mà tôi rất coi trọng đầu vào của bạn. – RichieHindle

+0

@SimonMourier Bạn có biết cách theo dõi chuyển đổi qua 'Chế độ xem giải pháp' và 'Chế độ xem thư mục' trong Solution Explorer không? Có thể có một giao diện với các phương pháp theo? –

+0

@Nightwalker - bạn nên đặt một câu hỏi khác –

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