Моя надстройка Outlook VSTO неожиданно перестала работать на одной машине клиента (она не загружается, не появляется сообщение об ошибке), и я застрял в поиске и устранении неполадок. Машина представляет собой Windows 7 x86, Outlook 2007. Надстройка написана с помощью Visual Studio 2008 и использует VSTO 2005 с PIA 2003 года (поскольку нам также необходимо поддерживать Outlook 2003). Он отлично работает на других машинах.
Здесь я попытался получить полезный выход для устранения неполадок:
- Добавить переменную среды
VSTO_SUPPRESSDISPLAYALERTS
(установлена в0
). - Запустите Outlook с правами администратора.
- Посмотрите журнал событий.
Ничего. Надстройка просто не загружается, не указывая причины. Я также проверил "обычных подозреваемых" (политика CAS, установленные PIA, LoadBehavior в реестре, переустановка VSTO и надстройки).
Некоторые другие наблюдения:
-
LoadBehavior
в реестре остается3
. - Надстройка отображается как "отключена" в Outlook. Проверка его флажка в "надстройках COM" просто ничего не делает (ошибка отсутствует, флажок снова очищается при вводе формы второй раз).
- Он отлично работает на других клиентских машинах, и он отлично работает на этой машине. (Нет, клиент не может сказать мне, что изменилось на его машине.)
- У меня есть сообщение
Trace.WriteLine
в самом верху моего кода (первая строка в обработчикеThisAddIn_Startup
), который не был достигнут (я проверил с DebugView). Таким образом, причина для не загрузки не является исключением в моей надстройке, а скорее неспособностью VSTO загружать надстройку или Outlook для загрузки VSTO.
Вместо более случайной отладки ( "попробуйте это...", "попробуйте это..." ), мне бы очень хотелось, чтобы заставлял Outlook и/или VSTO сообщать мне, что неправильно, то есть дать мне полезное сообщение об ошибке вместо того, чтобы просто ничего не делать при попытке включить надстройку. Есть идеи?