Проблема обновления при миграции надстройки COM в надстройку ExcelDNA - PullRequest
0 голосов
/ 13 июня 2011

Прежде чем перейти на ExcelDNA,

Мой плагин - COM AddIn, разработанный на C #, VS 2008 для Excel 2003 +

мой установщик создан с помощью проекта установки в VS 2008

во время установки вызывается install.xls в Custom Action, который вызывает xla для регистрации моего UDF

Теперь я переключаюсь на ExcelDNA,

Мой аддин изменен на

открытый класс Connect: ExcelRibbon, IExcelAddIn

Я все еще использую проект установки в VS, сохраняю тот же код обновления,

во время установки вызывается install.xls в пользовательском действии, которое вызывает xll для регистрации моего UDF

Это отлично работает для новой установки, т.е. более старой версии нет

Однако, если есть более старая версия myAddin (COM Addin)

если я установлю новую версию своего Addin (версия excelDna) поверх него,

Я ожидаю, что новая версия перезапишет старую версию.

Тем не менее появляется сообщение об ошибке: «Возникла проблема при инициализации надстройки (InitializedFailed) ...»

Возможно, многие люди здесь уже сталкивались с подобным опытом.

Как вы решили проблему? большое спасибо !!

1 Ответ

0 голосов
/ 14 июня 2011

Это связано с подписанными проектами.Раньше у меня было два проекта (dll), подписанные и на которые ссылалась третья dll.Позже я снимаю подпись.и ссылка на неподписанные DLL в третьем DLL.

Когда я обновляю предыдущую версию, по какой-то причине два dll не обновляются.Таким образом, третий ищет неподписанную версию dll, а в папке установки находит только подписанную версию.Итак, я получил ошибку initializedfailed.

Я снова подписал оба dll и сослался на них в своем третьем dll, затем обновление работает нормально.

подробнее http://blogs.msdn.com/b/tomholl/archive/2007/04/19/avoiding-configuration-pitfalls-with-incompatible-copies-of-enterprise-library.aspx

Однако одна проблема заключается в том, почему эти две библиотеки обновляются во время новой установки, а НЕ во время установки обновления?Это ошибка в установщике Windows или я что-то пропустил?спасибо

...