Visual Studio Add-in: Come faccio a sapere quando una soluzione è terminato il caricamento
-
19-09-2019 - |
Domanda
Sto scrivendo un VS2008 aggiuntivo (con DTE) che deve essere comunicato dopo che la soluzione corrente ha terminato il caricamento.
Ho provato con il seguente codice:
events = (Events2) applicationObject.Events
events.SolutionEvents.Opened += DoSomeWorkEvent;
Purtroppo sembra che da quando VS2005 l'evento viene generata quando la soluzione inizia a caricare -. E non quando finisce
Una ricerca su Internet ha prodotto il corto thread che spiega il problema e suggerire una soluzione (controllare ogni elemento del progetto per vedere se è terminato il caricamento).
E 'questo la migliore soluzione disponibile o c'è un modo migliore per sapere quando una soluzione è terminato il caricamento?
Soluzione
Ho trovato una soluzione che risolve questo problema -. Ho creato un Windows.Forms.Timer che viene eseguito sul thread principale e controlla se la soluzione ha terminato il caricamento
private void TimerTick(object sender, EventArgs e)
{
try
{
var solution = applicationObject.Solution;
if (solution.IsOpen && string.IsNullOrEmpty(solution.FileName) == false)
{
timer.Stop();
// insert logic here
}
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
}