Надстройка 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, чтобы убедиться, что в настройке установлены правильные ключи:
Развертывание надстроек уровня приложения
Ответ 3
Я бы рекомендовал выполнить описанные здесь действия по устранению неполадок:
Хамед Ахмади: мой админ Office не загружается!
Ответ 4
Вы уверены, что по какой-либо причине добавление не было отключено по прогнозу? Если вы установили его на уровне машины (в отличие от уровня пользователя), он не будет отображаться в списке добавления Com в любом случае. Возможно, попробуйте установить его как пользователь для добавления (так что он отображается в списке) и оттуда?