Я создал надстройку 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 и во всем реестре.