Здравствуйте, господа! Помогите, плиз, с такой проблемкой:
Пишу add-in для всей линейки MS Office. Использую VS2005/.NET 2.0/C#; Всё сделал как по науке — визард для shared add-in, заполнил методы, всё ок — в Word, Excel и Outlook всё работает!
Когда начал проверять в сабжевых продуктах, немало удивился — add-in не виден вообще! Пробовал добавлять через Tools->Add-ins — офисники ругаюцца что это типа "is not a valid Office Add-in".
На мелкомягком сайте нашёл невразумительный ответ, что дескать add-in, генерируемый студией, это MSIL-шмоток, а не полноценный COM-объект, поэтому его и не видно. А КАК ЖЕ WORD? Он-то видит!
Причём рекомендация к лечению достаточно идиотична: "создайте Setup проект"! Проект, естественно, давно был создан — НЕ РАБОТАЕТ.
Полазив по реестру обнаружил, что для работающих офисников в add-in'ах висит ещё по одному агенту Смиту — например, "ExcelDesignTimeAdaptor". Не буду утверждать, но что-то мне подсказывает, что это тот самый хелпер, который помогает загружаться MSIL add-in'ам. Уж очень странное совпадение...
Ещё немного порыв тему обнаружил, что полноценный COM можно создать только из strongly named assembly. Нет проблем! Сделал подпись к проекту (Project properties->Signing->[x]Sign the assembly),
перекомпилил, снова инсталлировал — никакого толку. Ручное добавление в GAC (gacutil.exe -i) тоже не помогло — сборка добавилась, но офисники по прежнему её не видят. Пробовал зарегистрить как COM — "regsvr32" ругается, что не нашёл DllRegisterServer entry point. И вот теперь сижу как дурак и думаю — это лыжи не едут или версия офиса 2003 — не более чем новые цифры на старых экзешниках и в ней не работает "новая" модель .NET?
Если кто не сталкивался с подобным, подскажите — быть может надо что-то сделать, чтобы эта DLL стала COM-ом? (или тулза какая для загрузки, типа этого "DesignTimeAdaptor")
Спасибо всем, кто дочитал.
Здравствуйте, Thornik, Вы писали:
T>Здравствуйте, господа! Помогите, плиз, с такой проблемкой:
T>Пишу add-in для всей линейки MS Office. Использую VS2005/.NET 2.0/C#; Всё сделал как по науке — визард для shared add-in, заполнил методы, всё ок — в Word, Excel и Outlook всё работает!
T>Причём рекомендация к лечению достаточно идиотична: "создайте Setup проект"! Проект, естественно, давно был создан — НЕ РАБОТАЕТ.
Попробуй вот это лекарство от
Omar Shahine.
ЧК>Попробуй вот это лекарство от Omar Shahine.
Кот, ссылка битая. Какой там был заголовок? (и он не про какой-то там Shim-wizard?)
Здравствуйте, Thornik, Вы писали:
T>Кот, ссылка битая. Какой там был заголовок? (и он не про какой-то там Shim-wizard?)
Вот она же открытым текстом:
http://www.shahine.com/omar/PermaLink,guid,ee43e226-a1e9-4077-b20c-b70602b93ea3.aspx
Ага, Кот, теперь сработало, пасиб! (я про ссылку

). А битая она потому, что за каким-то буем парсер сообщения делает линки LowerCase.
С этим Шимом я заморачиваться не стал. На Publisher я забил, Project стал показывать после того, как я перепроверил создание кнопкоф (видимо, где-то вылетало исключение и ничего не создавалось), а Visio стал волшебным образом всё показывать после того, как я переместил регистрацию add-in'а из ключа \Microsoft\Office\Visio напрямую в \Microsoft\Visio (ну надо же было такую мудню придумать!).
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение