8

解決策を開いた後にすべてのプロジェクトがソリューションに読み込まれたときに通知するイベント/インターフェイスを探しています。Visual Studio Extension:すべてのプロジェクトがIVsSolutionEventsでロード完了するのを待ちます。OnAfterOpenSolution

私はインターフェイスにOnAfterOpenSolutionを実装しました。これはソリューションが開かれた直後に呼び出されます...私はUIスレッドに対して、たとえasycnhronouslyでも実行すると、プロジェクトのロード前にIDEをロックします。

`OnAfterOpenSolution'を実装するのに似た手法があります。これは、ソリューションのすべてのプロジェクトを開いたら呼び出されますか?

答えて

5

IVsSolutionLoadEventsインターフェイスのOnAfterBackgroundSolutionLoadCompleteイベントは、ソリューションのすべてのプロジェクトのロードが完了した後に起動されます。このための実装は、IVsSolution.AdviseSolutionEvents(..)メソッドを使用してイベントをアタッチするために、IVsSolutionEventsインターフェイスの1つの実装から実装または拡張する必要があります。

この領域でさらに調査すると、プロジェクトがバックグラウンドで読み込まれるように設定されている場合にのみOnAfterBackgroundSolutionLoadCompleteが発生します。バックグラウンドの読み込みが無効になっている場合、このイベントは発生しません。 IVsSolutionLoadManagerを実装し、OnAfterBackgroundSolutionLoadCompleteイベントを使用する場合は、少なくとも1つのプロジェクトにバックグラウンドの読み込み優先度があることを確認するか、ユーザーが読み込み優先度を設定した方法に基づいて切り替える必要があります。

関連する問題