Надстройка Outlook 2003 не загружается, но находится в рабочем состоянии
-
28-10-2019 - |
Вопрос
Я создал надстройку Outlook для 2003, 2007 и 2010 годов. Надстройка отлично работает в 2007 и 2010 годах, но не загружается правильно в 2003 году на любых машинах, кроме моей собственной машины разработчика. Нет проблем с кодом, так как в поведении загрузки нет ошибок, и это не отключенный элемент. Надстройка также не отображается в списке надстроек COM. Эта надстройка ранее работала до 2003 года.
Вот что самое странное. У меня есть копия надстройки с более раннего периода времени, поэтому она не содержит некоторых функций полной версии. Эта надстройка правильно загружается в 2003 году. Поэтому в рамках моего тестирования на виртуальной машине я установил более раннюю версию (я назову ее тестовой ) и текущую версию, которая не работает ( Я назову его полным ). В реестре в разделе HKCU> Программное обеспечение> Классы> CLSID> [[guid]]> InprocServer32 для тестовой версии я изменил ключи «Местоположение манифеста» и «Имя манифеста» на значения полная версия. Затем я запустил Outlook, и полная версия работала отлично.
Я не вижу, как полная надстройка не работает с ее собственными настройками реестра, но отлично работает в тесте и только в Outlook 2003 .
Вот основная информация:
Мои настройки для разработчиков:
- 64-разрядная версия Windows 7
- Outlook 2003 установлен.
- Запуск VS2008 для проекта надстройки, но также использование VS2010 для вспомогательной сборки.
- Проект Set Security включен и изменен, чтобы разрешить установку CASPol для нескольких сборок.
В проект установки включены следующие предварительные требования:
- .Net 2.0
- .Net 3.5SP1
- Office 2003 PIA (также 2007 и 2010 PIA на 2007 и 2010 годы соответственно)
- среда выполнения VSTOSE
- Установщик Windows 3.1
Мы будем благодарны за любые подсказки, так как я потратил на эту проблему почти 4 дня!
TIA.
Обновление 1:
Согласно комментариям @JoaoAngelo, я проверил настройки реестра, и они следующие:
HKCU> Программное обеспечение> Классы> CLSID> {CLSID надстройки}> InprocServer32
родовое словоHKCU> Программное обеспечение> Microsoft> Office> Outlook> Надстройки> MyAddin
родовое словоЯ также добавил следующее под последним в соответствии с страницей развертывания , но безрезультатно:
родовое словоОбновление 2:
Согласно комментариям 0xA3; В HKCR> MyAddin у меня есть ключ CLSID с одним строковым значением:
родовое словоCLSID такой же, как в HKCU> Software> Classes> CLSID и во всем реестре.
Решение
Мне наконец удалось найти проблему, она была связана с реестром.
Изначально я планировал иметь отдельные надстройки для каждой версии Outlook, поэтому мои пространства имен, соглашения об именах и т. д. были следующими:
- [Компания] .AddIns.Outlook2003
- [Компания] .AddIns.Outlook2007
- [Компания] .AddIns.Outlook2010
Однако мне удалось создать надстройку, предназначенную для всех трех, поэтому я переименовал [Company] .AddIns.Outlook2003 в [Company] .AddIns.Client.
Я изменил настройки реестра для HKCU> Software> Microsoft> Office> Outlook> Addins> MyAddin, чтобы сослаться на описанное изменение, но по какой-то причине я не обновил его в разделе HKCU> Software> Classes.
Как только я изменил последние настройки в VS, все заработало!
Для справки: изменения были внесены в VS в рамках проекта установки в разделе "Просмотр"> "Реестр".
Немного раздражает, что эта проблема не появилась в 2007/2010, так как ее, возможно, было легче отследить.
Другие советы
Если вы еще этого не сделали, вам следует установить следующие переменные среды, чтобы помочь вам в устранении проблем с загрузкой надстройки:
-
VSTO_LOGALERTS=1
-
VSTO_SUPPRESSDISPLAYALERTS=0
Первый приведет к созданию файла * .log в каталоге, содержащем сборки надстроек, а второй позволит отображать всплывающие окна с ошибками при запуске целевого приложения, в данном случае Outlook.
Вы также говорите, что в вашем корпусе разработчика с Office 2003 надстройка работает правильно. Поскольку Visual Studio автоматически регистрирует надстройку в поле разработчика, когда вы выполняете сборку, вам следует убедиться, что вы создаете все необходимые разделы реестра в настройке. Вы можете проверить раздел Необходимые записи реестра в следующей статье MSDN, чтобы убедиться, что при установке создаются правильные ключи:
Я бы рекомендовал выполнить действия по устранению неполадок, описанные здесь:
<цитата>Вы уверены, что надстройка по какой-то причине не отключена в Outlook?Если вы установили его на уровне компьютера (в отличие от уровня пользователя), он ни в коем случае не будет отображаться в списке надстройки Com.Может быть, попробовать установить его как добавление для каждого пользователя (чтобы он отображался в списке) и перейти оттуда?