This project has moved and is read-only. For the latest updates, please go here.

When is Solution fully loaded?

Dec 30, 2014 at 10:19 PM
We use the SharedProject framework to implement our own project types. Our projects include thousands of files; when a large solution loads, the Hierarchy appears relatively quickly, but loading continues in the background, so the node properties appear many seconds later.

Although such asynchronous project/solution load looks good to the user, apparently some of the things do not work until the solution loads completely. For example, the SolutionEvents.Opened event fires relatively early, but reading project properties in there returns wrong values, because the project Configuration conditions are not evaluated yet.

We need to do some last minute adjustments in our project right after the user opens a solution, is there any event after SolutionEvents.Opened that we could attach to, when the solution opens completely and we can rely on the project properties evaluated correctly?
Dec 30, 2014 at 10:23 PM
Edited Dec 30, 2014 at 11:49 PM
You want IVsSolutionLoadEvents.OnAfterBackgroundSolutionLoadComplete (note that this is not a DTE event; there's no DTE equivalent).
Marked as answer by sun2sirius on 1/8/2015 at 2:19 PM
Dec 30, 2014 at 10:24 PM
By the way, if you don't mind me asking - what kind of project are you implementing?
Dec 30, 2014 at 11:40 PM
Thanks a lot for the quick response!

Our product is called Phoenix Core Architect (PCA), it is used for UEFI BIOS projects. It was implemented based on the original C++ extensibility framework that came with VS2005 SDK years ago, since then (we are shipping version 5 and developing v6.0) it became incrementally harder to add support for new versions of Visual Studio, therefore we decided to switch to MPF and now it is SharedProject in PTVS. We already see a number of issues (mostly UI-related) solved by using Managed Framework, however there is still a lot to port and we occasionally stumble of questions like this one.

BTW, the link you provided did not work, MSDN says "content not found", but I found the info and will try to implement the IVsSolutionLoadEvents interface.
Thanks again.
Dec 30, 2014 at 11:57 PM
Very interesting! Feel free to direct any further questions about SharedProject (or anything else that you might find useful in PTVS sources - there might be things there that may not necessarily be useful as a fork, but which may serve as sample code for VS extensibility, like the debugger) here.

I have updated the link for future reference, thanks for pointing that out.