私のVisual Studio Extensionは、IVsSolutionEvents.OnAfterOpenSolution()
を介してソリューションのオープンに応答します。Visual Studio Extensionでは、 "Open Folder"と "Open Solution"にどのように反応するのですか?
Visual Studio 2017は、 "Open Solution"の代わりに"Open Folder"を導入しましたが、フォルダを開くとIVsSolutionEvents.OnAfterOpenSolution()
は起動しません。 (IVsSolutionEvents
のイベントも、IVsSolutionLoadEvents
のイベントもありません。)
解決策ではなくフォルダを開くと、内線でどのように知ることができますか?
IVsSolutionEvents7 :: OnAfterOpenFolderをお探しですか? https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.interop.ivssolutionevents7?view=visualstudiosdk-2017 –
@SimonMourier:完璧に見えますが、実装して実装に合格するとオブジェクトを 'IVsSolution.AdviseSolutionEvents()'に設定した場合、 'IVsSolutionEvents7'イベントは発生しません。オブジェクトは 'IVsSolutionEvents'も実装し、それらのイベントは起動します。何か案は...? – RichieHindle
いいえ、これは本当に唯一の方法だと思います。いくつかのVS DLLは、そのようなインターフェイスを実装しています(Microsoft.VisualStudio.Shell.UI.Internal、クラスMicrosoft.VisualStudio.PlatformUI.StartPageToolWindowPaneなど)。そのインターフェイスを要求しているかどうかを確認するために、ICustomQueryInterfaceを一時的に実装しようとすることもできます。 –