Я следую отличному руководству Мальте Аренс о том, как создать надстройку OneNote.
Сначала я следовал этому шаг за шагом, делая несколько изменений (просто переименовав класс и используя свое собственное имя и GUID в сборке) info. Поскольку я использую VS2012 и еще не готов вручную запустить установщик WiX, я вручную скопировал встроенную dll в нужное место, а также создал файл реестра для внесения необходимых записей. Я подтвердил, что все они были там, загрузил OneNote, но не надстройку, перейдя в раздел «управление надстройками COM», я увидел следующую ошибку:
Поведение при загрузке: не загружено. Ошибка выполнения во время загрузки надстройки COM.
Я потратил некоторое время на отладку этого, но не продвинулся очень далеко. Итак, сегодня днем я решил начать заново, но дословно скопировал его код. Я просто скачал пример проекта, использовал пробную версию Vdproj для Wix создать установщик и все собрать.
Я получаю точно такую же ошибку.
Почему? Что это значит и, самое главное, как мне отладить проблему?
Несколько подробностей о моей среде и о том, где она может отличаться от исходного руководства.
Я использую Office 2013 И это 64-битная версия. Его руководство предназначено для 2010 года. Это означает, что когда я загрузил демонстрационное решение, мне пришлось удалить несуществующую ссылку на Onenote 14 Interop и добавить версию v15.
Что касается записей реестра, то они идут в нужное место, а не в узлы реестра WOW6432. Я знаю это вдвойне, как будто я загружаю OneNote, а затем обновляю узел реестра HKCR для надстройки, LoadBehavior переключается на 0x00000002 (отключено).
Другие вещи, которые, возможно, стоит отметить.
Я включил ведение журнала OneNote, и моя проблема не вызывает беспокойства.
Здесь есть еще 2 сообщения с похожей проблемой (но Office 2010) здесь и здесь не получили ответа. Первый парень загрузил его один раз, но затем ему приходилось каждый раз запускать его вручную, мой никогда не загружается (и я не подписал свою сборку), второй парень так и не получил ответа.
Как я уже сказал, даже знание того, как отлаживать это дальше, было бы большим шагом вперед.
Редактировать:
Я вернулся к отладке своей собственной версии, которая в любом случае почти идентична, так как я не уверен, что на самом деле делает установщик, и я думаю, что, поскольку это демонстрация конвертера wix, он позволяет мне собирать только для x86.
Если я добавлю OneNote.exe в раздел «Запустить внешнюю программу» и запущу отладку своей надстройки, я увижу следующие строки, когда я попытаюсь отметить надстройку в разделе «Управление надстройками COM» в OneNote. Боюсь, я все еще довольно зеленый во всем этом, поэтому я не уверен, что это значит.
First-chance exception at 0x00007ffe4f86ab78 in ONENOTE.EXE: 0x800401FD: Object is not connected to server.
First-chance exception at 0x00007ffe4f86ab78 in ONENOTE.EXE: 0x800401FD: Object is not connected to server.
First-chance exception at 0x00007ffe4f86ab78 in ONENOTE.EXE: 0x800401FD: Object is not connected to server.
Кроме того, прочитав больше, я думаю, что простого копирования моей dll в папку установки program files\[manufacturer]\[application]
(поскольку у меня нет установщика) было недостаточно. Теперь я выполнил это против моей dll
PS C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319> .\RegAsm.exe
и он вернулся с
Microsoft .NET Framework Assembly Registration Utility version 4.0.30319.33440
for Microsoft .NET Framework version 4.0.30319.33440
Copyright (C) Microsoft Corporation. All rights reserved.
Types registered successfully
Есть ли что-нибудь еще, что я должен сделать, чтобы правильно зарегистрировать dll?
OnConnection
), появляется ли это или это тоже не работает? - person Eric Brown   schedule 19.11.2013