2010-05-07 17 views
9

Possiedo un componente aggiuntivo di Outlook 2007 che ho ereditato di recente e che attualmente presenta un problema nella produzione in cui alcuni utenti ricevono il proprio componente aggiuntivo disabilitato periodicamente e apparentemente in modo casuale. Non ci sono log dal componente aggiuntivo e ci sono blocchi try/catch (e eat) attorno ad ogni chiamata di metodo/evento nel codice del componente aggiuntivo. Ho fatto qualche ricerca su google e ho scoperto che Outlook esegue questa "disattivazione software" dei componenti aggiuntivi in ​​caso di eccezioni non gestite generate in Outlook.Gestione eccezioni del componente aggiuntivo Outlook 2007

Da quello che posso dire non ci sono eccezioni che vengono gettate dal componente aggiuntivo. Quello che vorrei fare è 1) Creare un qualche tipo di gestore di eccezioni globale nell'addin per essere sicuro al 100% che tutte le eccezioni vengano catturate. Oppure 2) In qualche modo ascoltare Outlook "disabilitando" il componente aggiuntivo nel registro e facendo in modo che questo listener rimuova la chiave reg che è impostata su outlook.

ho tentato di fare # 1 dal seguente:

AppDomain.CurrentDomain.UnhandledException += AppDomain_UnhandledException; 
System.Windows.Forms.Application.ThreadException += Application_ThreadException;

ma nessuno dei due ha avuto successo.

Mi rendo conto che System.Windows.Forms.Application.ThreadException non si applica necessariamente ai componenti aggiuntivi di Outlook, ma ho capito perché non provarlo.

Inoltre, ho letto che Outlook avvia un AppDomain separato per i componenti aggiuntivi, quindi speravo che l'AppDomain.CurrentDomain avrebbe funzionato per questo. Ho scritto un codice che genera eccezioni intenzionalmente per testare e non è stato possibile ottenere una voce in nessuno di questi eventi e Outlook ha continuato a disattivare il componente aggiuntivo.

Qualsiasi aiuto/intuizione sarebbe molto apprezzato.

risposta

1

quando un Addin di Outlook viene disabilitato, modifica il comportamento del carico da 3 a 2. È possibile controllare questo comportamento di caricamento dal registro per identificare se un Addin è disabilitato o meno.

+0

@kapilg Penso che si tratti di informazioni preziose, quindi gli fornisco un +1, ma sto cercando un modo per evitare che eventuali eccezioni non gestite possano ribollire e che vengano disabilitate in primo luogo dal mio addin. Grazie. – Adam

Problemi correlati