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

Я создал надстройку Outlook для 2003, 2007 и 2010 годов. Надстройка работает отлично в 2007 и 2010 годах, но не загружается правильно в 2003 году на любых машинах, кроме моей собственной машины dev. Нет проблем с кодом, так как в поведении нагрузки нет ошибок, и это не отключенный элемент. Надстройка также не отображается в списке надстроек COM. Эта надстройка работает в 2003 году ранее.

Вот странная часть. У меня есть копия надстройки с более раннего момента времени, поэтому не содержит некоторых функций полной версии. Эта надстройка загружается правильно в 2003 году. Так что, как часть моего тестирования, на виртуальной машине я установил более раннюю версию (я буду называть ее test) и текущую версию, которая не работает ( Я назову его full). В реестре под HKCU > Software > Classes > CLSID > [[guid]] > InprocServer32 для версии test я изменил ключи "Manifest Location" и "Manifest Name", чтобы быть значениями полная версия. Затем я запускал Outlook, и полная версия работала отлично.

Я не вижу, как надстройка full не работает под своими собственными настройками реестра, но работает отлично под тестом, и только в Outlook 2003.

Вот основная информация:

Моя установка dev:

  • 64-разрядная версия Windows 7
  • Установлен Outlook 2003
  • Выполнение VS2008 для проекта надстройки, но также использование VS2010 для сборки спутника.
  • Проект "Безопасность безопасности" включен и изменен, чтобы позволить множеству сборок установить CASPol.

В проект установки включены следующие предварительные требования:

  • .Net 2.0
  • .Net 3.5SP1
  • Office 2003 PIA (также PIA 2007 и 2010 на 2007 и 2010 годы соответственно)
  • Время выполнения VSTOSE
  • Установщик Windows 3.1

Любые подсказки будут высоко оценены, так как я потратил почти 4 дня на эту проблему!

ТИА.


Обновление 1:

В соответствии с комментариями @JoaoAngelo я проверил параметры реестра, и они выглядят следующим образом:

HKCU > Программное обеспечение > Классы > CLSID > {add-in CLSID} > InprocServer32

 - (default) - '%CommonProgramFiles%\Microsoft Shared\VSTO\8.0\AddinLoader.dll'
 - ManifestLocation - path to the containing folder
 - ManifestName - the .dll.manifest file name
 - ThreadingModel - 'Both'

HKCU > Программное обеспечение > Microsoft > Office > Outlook > Addins > MyAddin

 - (default) - not set
 - CommandLineSafe - '1'
 - Description - a string
 - FriendlyName - add-in ID
 - LoadBehavior - '3' (this never gets set to 2, which would indicate an issue)
 - Manifest - path to the .dll.manifest of the add-in assembly
 - Path - path to the containing folder

Я также добавил следующее под последним, согласно странице Развертывание, но безрезультатно:

 - ManifestLocation 
 - ManifestName

Обновление 2:

Согласно комментариям 0xA3; В HKCR > MyAddin У меня есть CLSID-ключ с единственным строковым значением:

(default) - {add-in CLSID}

CLSID такой же, как в HKCU > Software > Classes > CLSID и во всем реестре.

Ответ 1

Мне, наконец, удалось найти проблему, она связана с реестром.

Первоначально планировалось иметь отдельные надстройки для каждой версии Outlook, и поэтому мои соглашения об именах и соглашения об именах и т.д. были следующими:

  • [Компания].AddIns.Outlook2003
  • [Компания].AddIns.Outlook2007
  • [Компания].AddIns.Outlook2010

Однако мне удалось создать надстройку для всех 3, поэтому я переименовал [Company].AddIns.Outlook2003 в [Company].AddIns.Client.

Я изменил параметры реестра для HKCU > Software > Microsoft > Office > Outlook > Addins > MyAddin, чтобы ссылаться на описанное изменение, но по какой-то причине я не обновил его в HKCU > Software > Classes.

Как только я изменил последние настройки в VS, он сработает!

Для справки изменения были сделаны в VS в проекте установки в разделе View > Registry.

Немного раздражает, что этот вопрос не появлялся в 2007/2010 году, поскольку, возможно, было легче отслеживать его.

Ответ 2

Если вы еще этого не сделали, вы должны установить следующие переменные среды, чтобы помочь вам в устранении проблем с загрузкой дополнительных файлов:

  • VSTO_LOGALERTS=1
  • VSTO_SUPPRESSDISPLAYALERTS=0

Первый из них приведет к созданию файла *.log, созданного в каталоге, содержащем сборки addin, а второй будет включать всплывающие окна с ошибками при запуске целевого приложения, в данном случае Outlook.

Вы также говорите, что в вашем блоке dev с Office 2003 аддон работает правильно. Поскольку Visual Studio автоматически регистрирует аддон в блоке dev при выполнении сборки, вы должны убедиться, что вы создаете все необходимые разделы реестра в настройке. Вы можете проверить раздел "Обязательные записи реестра" в следующей статье MSDN, чтобы убедиться, что в настройке установлены правильные ключи:

Развертывание надстроек уровня приложения

Ответ 4

Вы уверены, что по какой-либо причине добавление не было отключено по прогнозу? Если вы установили его на уровне машины (в отличие от уровня пользователя), он не будет отображаться в списке добавления Com в любом случае. Возможно, попробуйте установить его как пользователь для добавления (так что он отображается в списке) и оттуда?