Moje rozszerzenie Visual Studio odpowiada na otwarcie rozwiązania poprzez IVsSolutionEvents.OnAfterOpenSolution()
.W rozszerzeniu Visual Studio, jak odpowiedzieć na "Otwórz folder", a także "Otwórz rozwiązanie"?
Visual Studio 2017 wprowadziło "Open Folder" jako alternatywę dla "Open Solution", ale kiedy otworzysz folder, IVsSolutionEvents.OnAfterOpenSolution()
nie uruchamia się. (Żadnych innych zdarzeń w IVsSolutionEvents
, ani żadnego z wydarzeń w IVsSolutionLoadEvents
.)
W jaki sposób moje rozszerzenie może wiedzieć, kiedy Folder, w przeciwieństwie do Rozwiązania, zostanie otwarty?
Szukasz IVsSolutionEvents7 :: OnAfterOpenFolder? https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.interop.ivssolutionevents7?view=visualstudiosdk-2017 –
@SimonMourier: To wygląda idealnie, ale kiedy go zaimplementuję i przekażę swoje wdrożenie obiekt do 'IVsSolution.AdviseSolutionEvents()', żadne z zdarzeń 'IVsSolutionEvents7' nie zostanie wywołane. Obiekt implementuje również "IVsSolutionEvents", a zdarzenia te są uruchamiane. Jakieś pomysły...? – RichieHindle
Nie, myślę, że to naprawdę jedyny sposób. Niektóre VS dll implementują ten interfejs właśnie tak (na przykład Microsoft.VisualStudio.Shell.UI.Internal, klasa Microsoft.VisualStudio.PlatformUI.StartPageToolWindowPane). Możesz spróbować tymczasowo zaimplementować program ICustomQueryInterface, aby sprawdzić, czy nawet wymaga tego interfejsu. –