Общий плагин (Outlook в настоящее время) - кнопка на панели инструментов работает немного, а затем останавливается, ошибок нет - PullRequest
1 голос
/ 24 мая 2011

Немного странно это: у меня есть общий плагин Office, который в настоящее время нацелен на Outlook 2007 на XP и Win7 (Excel / Word и другие версии позже). Это добавляет кнопку панели инструментов, и это запускает мой код. Мой код просто читает данные из Outlook. В первый раз, это работает удовольствие. Во второй раз нажатие кнопки ничего не делает. Нет ошибок, ничего. Остальная часть Outlook отвечает как обычно.

Весь код события находится в try / catch, который записывает любые исключения во временный файл (этот механизм работает, если выбрасывает исключение в коде), но ничего не получается.

Согласно «Центру доверия», мой аддин активен (неактивен или отключен). Если я перезапускаю Outlook или останавливаю и запускаю надстройку через Центр управления безопасностью, она снова работает один раз, а затем останавливается.

Если я уменьшу объем работы, выполняемой моим кодом, кнопка иногда будет реагировать примерно на десять нажатий или около того, а затем сдается. Какую бы версию моего кода я ни пробовал, ресурсы, кажется, не сильно меняются (память перемещается вверх, количество потоков остается неизменным).

Я читал о похожих вещах с Word, но это объяснялось тем, что Word воссоздает панели инструментов или меню каждый раз, когда загружает документ (не уверен, насколько это правильно). Для меня я выбираю электронную почту, нажимаю один раз, она работает, нажимаю снова (без изменения представлений в Outlook, выбора разных писем и т. Д.), И это не так.

У кого-нибудь есть какие-нибудь подсказки здесь?

1 Ответ

1 голос
/ 24 мая 2011

Вы должны поместить переменную, содержащую ваши кнопки панели инструментов, в глобальную область видимости (тогда вы можете сохранить ее как поля объекта надстройки). Если вы не сохраняете правильный путь к ним всегда, сборщик мусора .NET в конечном итоге очистит эти объекты и обработчики событий с ним. Это, однако, не удалит видимую кнопку, поэтому она все еще будет видимой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...