Моя надстройка VSTO 3.0 Outlook не загружается - PullRequest
3 голосов
/ 25 августа 2009

Я пытаюсь выяснить, почему мой плагин Outlook, написанный на C # / VSTO 3.0 / VS 2008, не загружается после установки.

Плагин прекрасно работает на моей машине для разработки, на которой установлена ​​Visual Studio 2008. Я не могу ожидать, что у всех моих пользователей будут все необходимые условия, поэтому я прошел через эти шаги, чтобы написать установщик: http://msdn.microsoft.com/en-us/library/cc563937(loband).aspx

Я установил надстройку на новой машине с Windows XP SP 2 с новой установкой Outlook 2007. Он устанавливает все необходимые условия (.NET 3.5, среда выполнения VSTO 3.0, установщик Windows 3.1, PIA 2007). Outlook запускается, но надстройка не запускается. Если я перехожу на вкладку «Надстройки» в центре управления безопасностью, я вижу свою надстройку в разделе «Неактивные надстройки приложения» с сообщением «Не загружено. Произошла ошибка во время загрузки надстройки COM». "..

Не уверен, как найти конкретную ошибку, чтобы я мог ее исправить.

Клавиши reg выглядят нормально. В разделе HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Outlook \ Addins \ BlahAddin я вижу Описание, FriendlyName, LoadBehavior (устанавливается в 3, пока не происходит сбой, после которого если становится равным 2), и Манифест.

Попробовал трюк с переменной среды VSTO_SUPPRESSDISPLAYALERTS, а затем запустил Outlook из командной строки, но ничего не вышло.

У меня удаленная отладка более или менее работает, но я не уверен, что искать. Я не вижу, что моя DLL загружена при подключении к Outlook, но, опять же, может быть, управляемые DLL не отображаются так же, как в VS.

Любые другие идеи о следующих шагах, которые я мог бы предпринять, чтобы произвести конкретную ошибку, которую я могу диагностировать?

Ответы [ 4 ]

3 голосов
/ 18 сентября 2009

Решил мою проблему после нескольких недель боли. Ключ reg "Manifest" был поврежден до какого-то ненужного значения во время сборки установки. Это была известная ошибка Visual Studio, которая предположительно была исправлена ​​в Visual Studio 2008 SP 1, но, очевидно, не для меня. Переименование имени проекта, чтобы отличаться от имени плагина, решило проблему. Случайно, да?

2 голосов
/ 25 августа 2009

Убедитесь, что у вас есть обработчики try-catch на верхнем уровне всех методов, вызываемых Outlook, и регистрируйте любые исключения, которые вы не можете обработать каким-либо образом. Сконцентрируйте свои усилия по устранению неполадок на таких методах, как метод Startup и другие методы, вызываемые во время инициализации.

1 голос
/ 16 сентября 2009

На вашем компьютере, когда вы запускаете надстройку из Visual Studio, он должен создать раздел реестра в HKEY_CURRENT_USER \ Software \ Microsoft \ VSTO \ Security \ Inclusion {SomeGuid}. Убедитесь, что эти параметры реестра также развертываются вместе с вашим надстройкой. Именно они позволяют вашему коду доверять.

1 голос
/ 26 августа 2009

Возможно, вы хотите отладить это с помощью удаленного отладчика. Предоставьте общий доступ к папке MSVCMON.EXE с компьютера разработчика (в папках Visual Studio в Program Files) на тестовом компьютере (предоставьте общий доступ к пути UNC) и запустите Outlook в исключениях отладчика (.NET) в своих модулях установка точек останова в ваших методах.

Если вам нужно чистить тестовый компьютер каждый раз перед установкой решения, вам, вероятно, следует запустить XP под виртуальной машиной Virtual PC 2007 (бесплатная загрузка) и переключиться на разностный HD после настройки всего, кроме плагина, для создания снимка предварительно установленное состояние один раз, поэтому вам не нужно продолжать удаление / переустановку, поскольку вы вносите изменения в свою программу для исправления ошибок.

Вы устанавливаете сборки Debug или сборки Release? Возможно, один вкус имеет разные требования. Просто угадай.

- Майк [MSFT Office Dev]

...