Надстройка Outlook 2003 не загружается, но в рабочем состоянии - PullRequest
11 голосов
/ 23 марта 2011

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

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

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

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

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

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

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

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

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

TIA.


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

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

HKCU> Программное обеспечение> Классы> CLSID> {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> Надстройки> 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> Программное обеспечение> Классы> CLSID и во всем реестре.

Ответы [ 4 ]

3 голосов
/ 06 апреля 2011

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

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

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

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

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

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

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

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

0 голосов
/ 23 марта 2011

Я бы порекомендовал выполнить действия по устранению неполадок, описанные здесь:

Хамед Ахмади: Надстройка для моего офиса не загружается!

0 голосов
/ 23 марта 2011

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

0 голосов
/ 23 марта 2011

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

  • VSTO_LOGALERTS=1
  • VSTO_SUPPRESSDISPLAYALERTS=0

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

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

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

...