Надстройка Outlook 2003 не загружается, но находится в рабочем состоянии

StackOverflow https://stackoverflow.com/questions/5404615

Вопрос

Я создал надстройку 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.Может быть, попробовать установить его как добавление для каждого пользователя (чтобы он отображался в списке) и перейти оттуда?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top